我努力将中文单词/字符转换为ascii或hexadecimal,而且到目前为止我所得到的所有值都不是我想要得到的。
转换示例是手到十六进制是1534b。
到目前为止我遵循的方法如下,我得到了各种结果,但我正在寻找的那个,
如果你能帮我解决这个问题,我真的很感激,
谢谢, 麦克
- (NSString *) stringToHex:(NSString *)str{
NSUInteger len = [str length];
unichar *chars = malloc(len * sizeof(unichar));
[str getCharacters:chars];
NSMutableString *hexString = [[NSMutableString alloc] init];
for(NSUInteger i = 0; i < len; i++ )
{
[hexString appendFormat:@"%02x", chars[i]]; //EDITED PER COMMENT BELOW
}
free(chars);
return hexString;}
和
const char *cString = [@"手" cStringUsingEncoding:NSASCIIStringEncoding];
下面是Java for 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))) {
}
答案 0 :(得分:1)
您的Java代码就是这样做的:
获取字符串的每个16位字符并向其添加0xf100。
如果您在上面的Objective-C代码中执行相同的操作,您将获得所需的结果。