Ios 将汉字转换为ASCII或十六进制

Ios 将汉字转换为ASCII或十六进制,ios,objective-c,nsstring,hex,ascii,Ios,Objective C,Nsstring,Hex,Ascii,我正在努力将中文单词/字符转换为ascii或十六进制,而到目前为止我得到的所有值都不是我想得到的 转换的例子是单词手 到十六进制是1534b 我一直遵循的方法如下,我得到了各种各样的结果,但我一直在寻找的结果 如果你能在这个问题上帮助我,我真的很感激 谢谢, 迈克 下面是Java中Android的类似代码,可能会有所帮助 public boolean sendText(INotifiableManager manager, String text) { final int

我正在努力将中文单词/字符转换为ascii或十六进制,而到目前为止我得到的所有值都不是我想得到的

转换的例子是单词手 到十六进制是1534b

我一直遵循的方法如下,我得到了各种各样的结果,但我一直在寻找的结果

如果你能在这个问题上帮助我,我真的很感激

谢谢, 迈克

下面是Java中Android的类似代码,可能会有所帮助

    public boolean sendText(INotifiableManager manager, String text) {
       final int codeOffset = 0xf100;

       for (char c : text.toCharArray()) {


       int code = (int)c+codeOffset;


       if (! mConnection.getBoolean(manager, "SendKey", Integer.toString(code))) {


       }

您的Java代码正是这样做的:

获取字符串的每个16位字符,并向其添加0xf100


如果您在上述Objective-C代码中执行相同的操作,您将得到所需的结果。

ASCII没有这些字符的代码点。你为什么要用它?  你应该改用UTF-8(如果你想激怒日本以外的世界上的所有人,也可以使用Shift JIS)。我试图通过HTML调用将其发送到媒体框,我必须将其转换为ascii或十六进制才能做到这一点,因此通过URL发送这些字符的正确方法是对其进行百分比编码。请参阅此方法->
-(NSString*)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding
,并确保使用UTF-8,而不是ASCII。字符
是Unicode字符
U+6248
。在UTF-8中,这被编码为
E6898B
。什么编码为您提供了所需的
1534B
?通过使用StringByAdding Percents EscapeSusing编码,该单词将被编码为%E6%89%8B,这是我所不需要的。正如我所说,我使用HTTP API调用一个支持Ascii或十六进制的媒体盒。你还有其他的想法吗?很抱歉,这个问题真的很难回答,但事实并非如此手 一个字符?取决于您对“字符”的定义。因此,根据您的解释,在这种情况下,如何将我的NSString转换为等效的16位unichars?@Mike Yes,就
NSString
是单个字符。在上面的代码中,您已经在说
chars[i]
了,但是更好的方法是在
NSString
对象上使用
characterAtIndex:
const char *cString = [@"手" cStringUsingEncoding:NSASCIIStringEncoding];
    public boolean sendText(INotifiableManager manager, String text) {
       final int codeOffset = 0xf100;

       for (char c : text.toCharArray()) {


       int code = (int)c+codeOffset;


       if (! mConnection.getBoolean(manager, "SendKey", Integer.toString(code))) {


       }