【发布时间】:2015-05-18 06:33:53
【问题描述】:
我有一个包含 unicode 数据的字符串。
我想把它写在一个文件中。当数据写入文件时,它给了我简单的 unicode 值而不是英语以外的语言。
string originalString = ((char)(buffer[index])).ToString();
//sb.Append(DecodeEncodedNonAsciiCharacters(originalString.ToString()));
foreach (char c1 in originalString)
{
// test if char is ascii, otherwise convert to Unicode Code Point
int cint = Convert.ToInt32(c1);
if (cint <= 127 && cint >= 0)
asAscii.Append(c1.ToString());
else
{
//String s = Char.ConvertFromUtf32(cint);
asAscii.Append(String.Format("\\u{0:x4} ", cint).Trim());
// asAscii.Append(s);
}
}
sb.Append((asAscii));
Console.WriteLine();
当我看到输出文件时,数据显示如下
1 00:00:27,709-->00:00:32,959 1.2 \u00e0\u00a4\u0085\u00e0\u00a4\u00b0\u00e0\u00a4\u00ac \u00e0\u00a4\u00b2\u00e0\u00a5\u008b\u00e0\u00a4\u0097 28 \u00e0\u00a4\u00b0\u00e0\u00a4\u00be\u00e0\u00a4\u009c\u00e0\u00a5\u008d\u00e0\u00a4\u00af \u00e0\u00a4\u0094\u00e0\u00a4\u00b0 \u00e0\u00a4\u00b8\u00e0\u00a4\u00be\u00e0\u00a4\u00a4 \u00e0\u00a4\u0095\u00e0\u00a5\u0087\u00e0\u00a4\u0082\u00e0\u00a4\u00a6\u00e0\u00a5\u008d\u00e0\u00a4\u00b0 \u00e0\u00a4\u00b6\u00e0\u00a4\u00be\u00e0\u00a4\u00b8\u00e0\u00a4\u00bf\u00e0\u00a4\u00a4 \u00e0\u00a4\u00aa\u00e0\u00a5\u008d\u00e0\u00a4\u00b0\u00e0\u00a4\u00a6\u00e0\u00a5\u0087\u00e0\u00a4\u00b6
但它应该看起来像这样
1 00:00:27,400 --> 00:00:32,760 1.2 अरब लोग 28 राज्य और सात केंद्र शासित प्रदेश
我尝试了很多事情,但都没有完成我的工作。
【问题讨论】:
-
Unicode 是对字符串的正确编码。只是说...
-
@PradnyaBolli:链接到谷歌被认为是“没有建设性的”。
-
读取字符串的代码错误,必须修复。读取的代码使用了错误的编码。流的默认编码是 ASCII,在这种情况下使用必须指定 UNICODE 编码。
-
这些技巧都不适合我。但我非常感谢您的快速回复。我仍在寻找解决方案