我正在努力将中文单词/字符转换为 ascii 或十六进制,而我到现在为止得到的所有值都不是我想得到的。
转换的示例是单词手到十六进制是 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))) {
}