带有泰语的 NSURL

Posted

技术标签:

【中文标题】带有泰语的 NSURL【英文标题】:NSURL with Thai language 【发布时间】:2010-01-01 18:01:38 【问题描述】:

例如,我对 NSURL 和泰国语言有疑问 "http://www.xyp.com?var=ไทย" 它不起作用,但如果你使用 “http://www.xyp.com?var=Thai” 没关系。我不知道如何解决这个问题,请帮助我。

【问题讨论】:

URLWithString: returns nil 的可能副本 【参考方案1】:

我在 URL 字符串上使用了 stringByAddingPercentEscapesUsingEncoding 方法,它解决了问题,我使用的是丹麦字符

【讨论】:

【参考方案2】:

问题实际上在于 URI 的定义。 RFC3986 将 URI 的内容以及扩展的 URL 定义为 ASCII 字符,因此您必须以某种方式对其进行编码。这就是Percent encoding 的全部意义所在。问题是没有人同意编码什么字节。 Some people 更喜欢获取原始内容,将其转换为 UTF-8,然后使用标准百分比编码对字节进行编码。其他人只会直接对 UCS-2 字节进行编码,但你会遇到 Byte order 问题。

您可能还想阅读UNICODE URL Decoding 的帖子。

【讨论】:

【参考方案3】:

NSURL 要求所有特殊字符都被转义。

【讨论】:

【参考方案4】:

尝试 url 编码 搜索关键词“url encode”,你可以找到一些类似https://www.urlencoder.org/

的网站

然后http://www.xyp.com?var=ไทย会被编码成这样的东西

http%3A%2F%2Fwww.xyp.com%3Fvar%3D%E0%B9%84%E0%B8%97%E0%B8%A2

【讨论】:

以上是关于带有泰语的 NSURL的主要内容,如果未能解决你的问题,请参考以下文章

如何在Objective C中使用XML解析发布带有特殊字符和泰语的字符串?

Python 请求 Json 正文包含一些泰语值,需要按原样编码

搜索输入 GET/POST 数据无法理解来自 MySQL DB 的 utf8_unicode_ci 泰语数据

泰语 JSON 解码不起作用

无法返回查询泰语数据

将泰语字符输入 SAS