繁体   English   中英

如何让Swift / Xcode控制台显示中文字符而不是unicode?

[英]How can I get the Swift/Xcode console to show Chinese characters instead of unicode?

我正在使用此代码:

import SwiftHTTP    
var request = HTTPTask()
var params = ["text": "这是中文测试"]
request.requestSerializer.headers["X-Mashape-Key"] = "jhzbBPIPLImsh26lfMU4Inpx7kUPp1lzNbijsncZYowlZdAfAD"
request.responseSerializer = JSONResponseSerializer()
request.POST("https://textanalysis.p.mashape.com/segmenter", parameters: params, success: {(response: HTTPResponse) in if let json: AnyObject = response.responseObject { println("\(json)") } },failure: {(error: NSError, response: HTTPResponse?) in println("\(error)") })

Xcode控制台将此显示为响应:

{
    result = "\U8fd9 \U662f \U4e2d\U6587 \U6d4b\U8bd5";
}

是否可以让控制台显示以下内容?:

{
  result = "这 是 中文 分词 测试"
}

如果是这样,我需要做些什么来实现它?

谢谢。

代替

println(json)

使用

println((json as NSDictionary)["result"]!)

这将打印正确的中文结果。

原因:第一个打印将调用NSDictionary的调试描述,它不仅会逃避中文字符。

您的函数实际上打印了响应对象,或者更准确地说是其描述。 响应对象是字典,unicode字符在其描述中使用\\ Uxxxx编码。

看问题: NSJSONSerialization和Unicode,不能很好地一起玩

要访问结果字符串,您可以执行以下操作:

if let json: AnyObject = response.responseObject {
    println("\(json)")   // your initial println statement
    if let jsond = json as? Dictionary<String,AnyObject> {
        if let result = jsond["result"] as? String {
            println("result = \(result)")
        }
    }
}

第二个println语句将打印实际字符串,此代码实际上产生:

{
    result = "\U8fd9 \U662f \U4e2d\U6587 \U6d4b\U8bd5";
}
result = 这 是 中文 测试

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM