用于objective-c的utf8_解码

用于objective-c的utf8_解码,objective-c,utf-8,utf8-decode,Objective C,Utf 8,Utf8 Decode,可能重复: 我有一根拉丁文字符串 Artîsté 当我对它进行json_编码时,它会转义一些字符并将其转换为单字节UTF8 Art\u00eest\u00e9 如果我只是对它进行json_解码,我相信它是用UTF8解码的 Artîsté 为了找回我的原始字符串,我必须调用utf8\u decode Artîsté 有没有办法在objective-c中处理此转换?您可能正在寻找以下内容: NSString *string = (some string with non-ASCII c

可能重复:

我有一根拉丁文字符串

Artîsté
当我对它进行json_编码时,它会转义一些字符并将其转换为单字节UTF8

Art\u00eest\u00e9
如果我只是对它进行json_解码,我相信它是用UTF8解码的

Artîsté
为了找回我的原始字符串,我必须调用utf8\u decode

Artîsté

有没有办法在objective-c中处理此转换?

您可能正在寻找以下内容:

NSString *string = (some string with non-ASCII characters in it);
char const *string_as_latin1 = [string cStringUsingEncoding:NSISOLatin1StringEncoding];
或者可能是:

NSData *data_latin1 = [string dataUsingEncoding:NSISOLatin1StringEncoding allowLossyConversion:YES];
我有一根拉丁文字符串

Artîsté
我想你不会的。假设您谈论的是PHP,
json_encode()
只接受UTF-8字符串,如果遇到非UTF-8高字节序列,则退出:

json_encode("Art\xeest\xe9")
"Art"
json_encode("Art\xc3\xaest\xc3\xa9")
"Art\u00eest\u00e9"

我认为你有一个合适的UTF-8字符串开始,然后你编码和解码它得到完全相同的UTF-8字符串回来。但是,您正在显示它或在另一个步骤中处理它,您没有向我们展示,这将字符串视为拉丁语-1。

json\u编码、json\u解码和utf8\u解码到底是什么?您已经实现的功能/方法?你在用什么图书馆?我想你就在那里。有一段代码将其转换为utf8,但我忘记了它在那里……如果我的代码没有错,您的解决方案就会正常工作。我所尝试的一切都是在编码中使用混乱的字符。它应该返回Art\u00eest\u00e9,但幕后的东西正在更改我的输入字符串,结果是Art\u00c3\u00aest\u00c3\u00a9,所以我试图解码错误的字符串。