2011-05-03 241 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); 

//丹尼爾

相關問題