Delphi 10,.NET,如何将十六进制UTF-8字符串转换为其unicode字符?

时间:2010-03-15 17:39:12

标签: delphi unicode utf-8 delphi-2006

我正在尝试使我的网络应用程序与国际语言兼容,并且我一直试图在我的Delphi .NET DLL中转换转义字符。

前端代码传递带有转义字符的UTF-8十六进制表示法,例如お我传递\ uE3818A。在我的DLL中,我捕获了这个并构造了以下字符串'$ E3818A'。我需要将其转换回お并将其发送到我的数据库,我一直在尝试使用Encoding.UTF8.GetBytes和Encoding.UTF8.GetString,但没有运气。

任何人都可以帮我解决这个问题吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

将字符串转换为表示原始字节的字节数组(在本例中为0xE3,0x81,0x8A),然后调用Encoding.UTF8.GetString(bytes) - 这应该没问题。

答案 1 :(得分:1)

呼叫:

byte.Parse("12", NumberStyles.HexNumber);

每个字符都存储到byte[],然后调用Encoding.UTF8.GetString(byteStr)