我需要将“ÖÐÎÄ°æ²âÊÔ”转换成汉字“中文版测试”。 我看到c ++ MultiByteToWideChar的这个函数:
MultiByteToWideChar(
CP_UTF8, // convert from UTF-8
0, // default flags
utf8.data(), // source UTF-8 string
utf8.length(), // length (in chars) of source UTF-8 string
&utf16[0], // destination buffer
utf16.length() // size of destination buffer, in wchar_t's
)
但我如何将其用于vb.net?
答案 0 :(得分:0)
在逆向工程(猜测)部门,我的机器上有.NET可访问的编码组合,可以解码此示例。
Dim mojibake = "ÖÐÎÄ°æ²âÊÔ"
Dim text = "中文版测试"
Dim possibilities =
From mojibakeEncoding In Encoding.GetEncodings()
Let orginalBytes = mojibakeEncoding.GetEncoding().GetBytes(mojibake)
From originalEncoding In Encoding.GetEncodings()
Where originalEncoding.GetEncoding().GetString(orginalBytes) = text
Select New With {
.mojibakeEncoding = $"{mojibakeEncoding.Name}",
.originalEncoding = $"{originalEncoding.Name}" }
possibilities.Dump()
(LINQPad代码)
请记住,不同的样本可能会给出不同的结果,因此最好弄清楚如何创建mojibake。理想情况下,您将不再使用字符编码来存储二进制数据。您可以改用Base64。