带有泰语的 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 正文包含一些泰语值,需要按原样编码