将数据字符串转换为 UTF8 的问题
Posted
技术标签:
【中文标题】将数据字符串转换为 UTF8 的问题【英文标题】:Issue with converting data string to UTF8 【发布时间】:2016-07-15 10:17:59 【问题描述】:我正在使用 JSON 获取一些数据,但是当我获取数据时,name
s 字符串是这样的:
code = 200;
found = 1;
name = "\\u0635\\u0641\\u062d\\u0647 \\u0631\\u0633\\u0645\\u06cc \\u0633\\u0627\\u06cc\\u062a \\u0648\\u0631\\u0632\\u0634 \\u06f3";
如何解决?我试图将其转换为 UTF8 编码,但仍然没有!我不得不说 URL 在 Safari 中使用 UTF8 编码可以正常工作
这是我的代码:
let userURL: String = "https://myurl.com/xxx"
let ut8 = userURL.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
NSURLSession.sharedSession().dataTaskWithURL(NSURL(string:ut8!)!, completionHandler: (data, response, error) -> Void in
// Check if data was received successfully
if error == nil && data != nil
do
if let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary
print(jsonResult)
.....
问题已解决:服务器出现问题,现已修复
【问题讨论】:
这不是 JSON 字符串,它是字典表示。您确定 JSON 包含那些 Unicode 令牌吗? @vadian 我只是编辑我的 Q 标题 不要转换name
字符串并将其分配给 UILabel 的 text
属性。会发生什么?
您的问题是什么?看来您已成功收到您的 JSON 数据作为 NSDictionary。试试print(jsonResult["code"], jsonResult["found"], jsonResult["name"])
。
@vadian 同样的事情,实际上我将此字符串传递给标签
【参考方案1】:
这正是print
方法输出的内容,它有时会出现编码问题。在 UI 中呈现这些文本时应该没问题。
【讨论】:
【参考方案2】:在 Swift 中将数据字符串转换为 UTF8 字符串
yourNSStringObject.utf8
在 Objective C 中使用将数据字符串转换为 UTF8 字符串
[yourNSStringObject UTF8String];
【讨论】:
以上是关于将数据字符串转换为 UTF8 的问题的主要内容,如果未能解决你的问题,请参考以下文章