【发布时间】:2016-05-17 09:34:42
【问题描述】:
看 utf8 将字符串转换为十六进制字符串需要时间,然后向后 我找到了一些示例和可能的解决方案,但只有在没有特殊字符的情况下才能正常工作。 我有以下内容:
string in="áéíóúñü"
结果应该是:
“c3a1c3a9c3adc3b3c3bac3b1c3bc”
我尝试关注帖子和其他帖子:
C++ convert string to hexadecimal and vice versa
How to convert a string in hexadecimal string?
http://www.cplusplus.com/forum/beginner/161703/
我会尽量解释得更好,但我不会说英语。对不起。
我必须使用套接字发送一些数据。为此,我必须使用 UTF-8 将名称转换为十六进制,但在某些情况下会有特殊字符,例如 á、é、í... 转换普通字母时,每个字母的字符串长度为 2。
a-> "61"
e-> "65"
但特殊字符被编码(在 UTF-8 上)长度为 4
á-> "c3a1" 这是正确的转换
é-> "c3a9" 这是正确的转换
我已经尝试了所有我找到的方法的转换,包括建议我失败的方法。但是每次你转换一个特殊字符给我一个2位数的答案,这是不正确的。
á-> "e1" 这不正确
é-> "e9" 这不正确
【问题讨论】:
-
您好,欢迎来到 SO!请阅读this 帖子了解如何提出更好的问题,这将有助于人们为您提供更好的答案。特别是,添加您已经尝试过的代码。