2011-05-03 244 views
2

我在这台统一码被写成如何将字符串的字符串转换为字符?

“ '\ 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

你在哪里得到这个文件从?改变它的创建可能比解析它更简单。 – 2011-05-03 06:15:46

+0

我们在我们的项目中使用这些文件。我没有得到你想说的 – rubyraj 2011-05-03 06:22:18

+0

但是这些文件从哪里来?他们创造了什么? – 2011-05-03 07:15:22

回答

3

您可以提取包含单个数字的字符串(例如使用正则表达式),将Int16.Parse应用于每个数字,然后将其转换为字符。

string num = "0641"; // replace it with extracting logic of your preference 
char c = (char)Int16.Parse(num, System.Globalization.NumberStyles.HexNumber); 
+0

感谢您的快速反应,它的工作:) – rubyraj 2011-05-03 07:12:27

+0

可以告诉我如何将char转换为unicode – rubyraj 2011-05-03 10:39:12

+1

** ** char **可以隐式转换为ushort,int,uint,long,ulong,float,double或decimal 。 (来自MSDN)你可以写:ushort code = c;而变量* code *将保存c的unicode值。 – Dmitry 2011-05-03 11:26:52

0

你可以解析这行以获得每个unicode字符。为Unicode转换为可读取字符,你可以做

char MyChar = '\u0058'; 

希望这有助于

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

//丹尼尔

相关问题