我有一个文本文件,其中的一组Unicodes被写为
“ '\ u0641'”,“ '\ u064A', '\ u0649', '\ u0642', '\ u0625', '\ u0644', '\ u0627', '\ u0647', '\ u0631' '\ u062A', '\ u0643', '\ u0645', '\ u0639', '\ u0648', '\ u0623', '\ u0646', '\ u0636', '\ u0635', '\ u0633' '\ u0641', '\ u062D', '\ u0628', '\ u0650', '\ u064E', '\ u062C','\ u0626" “ '\ u0622'”,“ '\ u062E', '\ u0644', '\ u064A','\ u0645" 。
我打开文件并使用readline方法开始读取文件。我将上面的行显示为一行现在我想将所有Unicode转换为char,以便我可以获得一个可读的字符串。我尝试了一些逻辑,但这不起作用我坚持将字符串“'\ u00641'”转换为char。
答案 0 :(得分:3)
您可以提取包含单个数字的字符串(例如使用Regex),将Int16.Parse应用于每个字符串,然后将其转换为字符。
string num = "0641"; // replace it with extracting logic of your preference
char c = (char)Int16.Parse(num, System.Globalization.NumberStyles.HexNumber);
答案 1 :(得分:0)
您可以解析该行以获取每个unicode char。要将unicode转换为可读字符,您可以
char MyChar = '\u0058';
希望这个帮助
答案 2 :(得分:0)
如果你这样做会怎么样:
string codePoints = "\u0641 \u064A \u0649 \u0642 \u0625";
UnicodeEncoding uEnc = new UnicodeEncoding();
byte[] bytesToWrite = uEnc.GetBytes(codePoints);
System.IO.File.WriteAllBytes(@"yadda.txt", bytesToWrite);
byte[] readBytes = System.IO.File.ReadAllBytes(@"yadda.txt");
string val = uEnc.GetString(readBytes);
//丹尼尔