如何将字符串转换为char?

时间:2011-05-03 06:09:41

标签: c# windows silverlight windows-phone-7

我有一个文本文件,其中的一组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。

3 个答案:

答案 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);

//丹尼尔