iOS:如何在Swift中显示特殊字符[NString]



我通过socket.io我的应用程序发送数据,我想将参数的文本嵌入UILabel

Javascript服务器

socket.emit("app",{ac:"organización"})

iOS应用程序

var ac = self.jsonOFsocket["ac"] as String
//ac === "organización"
self.label.text = ac
//self.label.text === "organizaciU00f3n"
  1. socket.io应用程序发送未加密的字符
  2. 应用程序成功接收所有字符
  3. 该应用程序显示不同的符号

我尝试这样做:

func utf(txt:String) -> NSString {
   var newTxt = NSString(format:txt, NSUTF8StringEncoding)
   newTxt.precomposedStringWithCanonicalMapping
   return newTxt
}
var ac = self.jsonOFsocket["ac"] as String
//ac === "organización"
self.label.text = uft(ac)
//self.label.text === "organizaciââ¥n"

这很重要:

organizaciââ¥n

这是Objective-C方式:

NSData *data = [MyString dataUsingEncoding:NSUTF8StringEncoding];
NSString *stringWithSpecialCharacters = [[NSString alloc] initWithData:data encoding:NSNonLossyASCIIStringEncoding];

您还必须在服务器上存储正确的字符串格式,并确保它通过curl返回正确的字符串。

最新更新