gpt4 book ai didi

objective-c - IOS JSON转义特殊字符

转载 作者:行者123 更新时间:2023-11-28 17:35:19 28 4
gpt4 key购买 nike

我在 IOS 中工作,并试图通过 NSURLRequest 将一些内容传递到 Web 服务器。在服务器上,我有一个 PHP 脚本设置来接受请求字符串并使用 Zend_JSON 框架将其转换为 JSON 对象。我遇到的问题是,每当字符“ø”出现在请求参数的任何部分时,请求字符串就会被截短一个字符。

在进入服务器之前请求字符串。

[{"description":"Blah blah","type":"Russebuss","name":"Roscoe Simulator","appVersion":"1.0.20","osVersion":"IOS 5.1","phone":"5555555","country":"Østfold","udid":"bed164974ea0d436a43f3cdee0e005a1"}]

在任何解析之前在服务器上请求字符串

[{"description":"Blah blah","type":"Russebuss","name":"Roscoe Simulator","appVersion":"1.0.20","osVersion":"IOS 5.1","phone":"5555555","country":"Nord-Trøndelag","udid":"bed164974ea0d436a43f3cdee0e005a1"}

除了最后的结束 ] 之外,一切看起来都完全一样。我认为在将字符串转换为 UTF-8 时出现问题,但不确定解决此问题的正确方法。

有人知道为什么会这样吗?

最佳答案

首先,在这种情况下不要相信 xcode 控制台。您永远不知道控制台实际使用的是哪种编码。

其次,在构建 json 字符串之前转义无效字符。最简单的方法可能是确保您始终使用相同的 unicode 表示形式,例如 utf-8。

第三,如果仍然有无效字符,请使用带有解析器的 json 库(进行编码)。通过解析回例如验证输出字符串。或使用类似 http://jsonformatter.curiousconcept.com/ 的 Web 表单手动验证输出

最糟糕的方法是替换字符串中的单个字符,构建您的 json 并转换回来。一种方法是用它的 unicode 表示法 U+00E4 (http://www.utf8-chartable.de/) 替换例如德语 ä。

我就是这样做的。我很高兴我不需要比第三步更进一步,这是您无论如何都应该做的以保持代码简单的步骤。

关于objective-c - IOS JSON转义特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9970907/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com