1
A
回答
1
您可以尝试枚举(测试)所有可用的编码,并找出编码合理文本的 。不幸的是,当它不是一个绝对的解决方案: 它可能是一个错误转换的信息损失。
public static String GetAllEncodings(String value) {
List<Encoding> encodings = new List<Encoding>();
// Ordinary code pages
foreach (EncodingInfo info in Encoding.GetEncodings())
encodings.Add(Encoding.GetEncoding(info.CodePage));
// Special encodings, that could have no code page
foreach (PropertyInfo pi in typeof(Encoding).GetProperties(BindingFlags.Static | BindingFlags.Public))
if (pi.CanRead && pi.PropertyType == typeof(Encoding))
encodings.Add(pi.GetValue(null) as Encoding);
foreach (Encoding encoding in encodings) {
Byte[] data = Encoding.UTF8.GetBytes(value);
String test = encoding.GetString(data).Replace('\0', '?');
if (Sb.Length > 0)
Sb.AppendLine();
Sb.Append(encoding.WebName);
Sb.Append(" (code page = ");
Sb.Append(encoding.CodePage);
Sb.Append(")");
Sb.Append(" -> ");
Sb.Append(test);
}
return Sb.ToString();
}
...
// Test/usage
String St = "Некий русский текст"; // <- Some Russian Text
Byte[] d = Encoding.UTF32.GetBytes(St); // <- Was encoded as UTF 32
St = Encoding.UTF8.GetString(d); // <- And erroneously read as UTF 8
// Let's see all the encodings:
myTextBox.Text = GetAllEncodings(St);
// In the myTextBox.Text you can find the solution:
// ....
// utf-32 (code page = 12000) -> Некий русский текст
// ....
1
byte[] hexbytes = System.Text.Encoding.Unicode.GetBytes();
这给你的字符串的十六进制字节,但你必须知道你的字符串的编码,并用'Unicode'代替。
相关问题
- 1. 字符串转换类型类类型
- 2. C宏将字符串转换为pascal字符串类型
- 3. (字符串)字符类型转换
- 4. C#类型转换(字符串转换为int)
- 5. 将字符串转换为字符串的泛型类型
- 6. C#字符串到浮点型转换
- 7. 将LinqToExcel.RowNoHeader类型转换为字符串
- 8. 将MYSQL_ROW类型转换为字符串
- 9. 类型转换为unicode字符串?
- 10. 将字符串转换为'Date'类型
- 11. 通用类型转换从字符串
- 12. 将字符串转换为类型“LuaFunction”
- 13. 字符串VB.Net类型转换
- 14. 将字符串转换为类型UTCTime
- 15. 将字符串类型转换为int
- 16. JLayeredPane的类型转换字符串
- 17. 类型转换字符串和strdup
- 18. 将字符串值转换为类型
- 19. 转换成字符串DateTime类型
- 20. 转换字符串参数object类型
- 21. 类型转换字符串INT
- 22. 无法将类型'int'隐式转换为'字符串'C#类
- 23. 将字符串类型转换为C中的8位数字#
- 24. C++字符串到字符串转换
- 25. 隐式转换的C++字符串类
- 26. 在C#字符串转换到类名
- 27. JMSBytesMessage将字符串和字符串转换为JMSBytesMessage类型转换
- 28. 类型字符串()的值不能转换为字符串
- 29. 字符串转换为美孚(字符串类型)
- 30. 无法将类型'字符串'隐式转换为'字符串'
您需要知道使用哪种编码。 –
我记得我在这个例子中使用了PHP的bin2hex函数,并得到了适当的转换。这是否意味着我应该在C#中将此字符串转换为十六进制? – A23149577