【发布时间】:2021-06-16 06:36:36
【问题描述】:
我有 1252 编码的字符串,如何将其转换为 UTF-8 编码 尝试 Encoding.Convert 但打印时得到相同的 1252 编码字符串
var destEncoding = Encoding.UTF8; // utf-8
var srcEncoding = Encoding.GetEncoding(1252);
// convert the source bytes to the destination bytes
var destBytes = Encoding.Convert(srcEncoding, destEncoding, srcEncoding.GetBytes(srcString));
// process the byte[]
//File.WriteAllBytes("myFile", destBytes); // write it to a file OR ...
var destString = destEncoding.GetString(destBytes); // ... get the string
【问题讨论】:
-
第二次:这与字符串的编码无关(始终是 UTF-16,这不是一个选项) - 你的意思是:字符串的值是一个 % url 编码的值,并且 那些 标记采用了意外的编码。为此,您需要解析 %-encoded 值(给您字节),以一种文本编码对它们进行解码(给您一个字符串),以不同的文本编码对它们进行编码(再次给您字节),最后重新- 将 %-encoding 应用于这些字节(给你一个字符串);相当多的碎片!
-
HttpUtility.UrlEncode(HttpUtility.UrlDecode(srcString,srcEncoding),destEncoding);? -
@YounessAbbassi ``` 字符串消息="C:/Users/%DCser";编码 iso = Encoding.GetEncoding("ISO-8859-9");编码 utf8 = Encoding.UTF8; byte[] utfBytes = iso.GetBytes(Message); byte[] isoBytes = Encoding.Convert(iso, utf8, utfBytes);字符串味精 = utf8.GetString(isoBytes); Console.WriteLine(msg);```这不起作用
-
@MarcGravell 你能举个例子吗?
标签: c# string character-encoding urlencode