# 无法查看非 ASCII 标签的私信列表

**URL:** <https://meta.discourse.org/t/unable-to-see-pm-lists-for-non-ascii-tag/151723>\
**Category:** Bug\
**Created:** [2020年五月16日 22:25 UTC](https://meta.discourse.org/t/unable-to-see-pm-lists-for-non-ascii-tag/151723 "2020-05-16T22:25:17Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![alexaw](https://avatars.discourse-cdn.com/v4/letter/a/e9bcb4/32.png) [@alexaw](https://meta.discourse.org/u/alexaw)\
**Post date:** [2020年五月16日 22:25 UTC](https://meta.discourse.org/t/unable-to-see-pm-lists-for-non-ascii-tag/151723/1 "2020-05-16T22:25:17Z")

</div>

当个人消息被标记为非 ASCII 字符标签时，该非 ASCII 标签可以在私信收件箱、已发送、归档以及私信标签列表中正常显示。

然而，在点击 `/u/username/messages/tags` 或 `/tags` 下的标签时，只有 ASCII 标签能返回私信列表。点击非 ASCII 标签则会显示“未找到主题”。

我在全站范围内使用了非 ASCII（日文和中文）标签，除了在私信中以外，尚未遇到任何问题。

> **截图**
>
> ![image](https://global.discourse-cdn.com/meta/original/3X/3/e/3ebeacf41202be13c16846ecf232559d446bd103.png)
> 
> ![image](https://global.discourse-cdn.com/meta/original/3X/4/9/4907d5e173efe8702d163080e5da0c0eb78cca78.png)
> 
> ![image](https://global.discourse-cdn.com/meta/original/3X/8/a/8a6718b8a0ffbe0a81e94c4022e02b6af98ec17a.png)
> 
> ![image](https://global.discourse-cdn.com/meta/original/3X/d/b/db7b6dc69989bf1dc482d6b754e452824155f63d.png)

* * *

复现步骤：

1. 为同一条私信添加非 ASCII 标签和 ASCII 标签
2. 导航至 `/u/username/messages/tags` 或 `/tags`
3. 分别点击非 ASCII 标签和 ASCII 标签
4. 非 ASCII 私信标签返回空结果集，而 ASCII 标签返回正常结果

---

<div class="post-metadata">

**Author:** ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)\
**Post date:** [2020年五月16日 23:09 UTC](https://meta.discourse.org/t/unable-to-see-pm-lists-for-non-ascii-tag/151723/2 "2020-05-16T23:09:21Z")

</div>

这可能是一个 bug，我们周一应该分配给 @sam 吗？

---

<div class="post-metadata">

**Author:** ![techAPJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/techapj/32/342990_2.png) [@techAPJ](https://meta.discourse.org/u/techAPJ)\
**Post date:** [2020年五月20日 12:48 UTC](https://meta.discourse.org/t/unable-to-see-pm-lists-for-non-ascii-tag/151723/4 "2020-05-20T12:48:13Z")

</div>

这里的问题是，我们在这里对标签名称进行了参数化处理，这会导致从字符串中移除特殊字符。这也意味着名称中包含表情符号的标签会表现出相同的行为。

修复方法非常简单（PR）：

> <https://github.com/discourse/discourse/pull/9839>
>
> Parameterizing tag\_id was breaking tags with non-ascii characters or emoji.
> 
> B…ug report: https://meta.discourse.org/t/unable-to-see-pm-lists-for-non-ascii-tag/151723/4

但我不确定移除参数化处理会带来哪些副作用。有趣的是，正是我在两年前添加了参数化处理：

> <https://github.com/discourse/discourse/commit/18f50ca01abfa5497b3dc423470c3b5e84e48771>

但我不确定当时是为了解决什么问题。

我已在本地对 PR 进行了非常严格的测试，没有发现移除标签名称参数化处理会带来任何问题。

编辑：PR 已合并。

---

<div class="post-metadata">

**Author:** ![techAPJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/techapj/32/342990_2.png) [@techAPJ](https://meta.discourse.org/u/techAPJ)\
**Post date:** [2020年五月20日 13:52 UTC](https://meta.discourse.org/t/unable-to-see-pm-lists-for-non-ascii-tag/151723/5 "2020-05-20T13:52:45Z")

</div>


