c # - hvordan konverteres streng af unicodes til char?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en tekstfil, hvor sæt Unicodes er skrevet som


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


Jeg åbnede filen og begyndte at læse fil ved hjælp af readline metode. Jeg fik ovenstående linje vist som en linje nu, jeg vil konvertere alle Unicode til char, så jeg kunne få en læsbar streng. Jeg har forsøgt nogle logik, men det virker ikke jeg har fast ved at konvertere streng '' til at char.

Bedste reference


Du kan ekstrahere strenge indeholdende individuelle tal (ved hjælp af Regex for eksempel), anvend Int16.Parse til hver og konverter derefter til en char.


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

Andre referencer 1


Du kan analysere linjen for at få hver unicode char. At konvertere unicode til læsbar karakter, du kunne gøre


char MyChar = 'u0058';


Håber denne hjælp

Andre referencer 2


Hvad hvis du gør noget som dette:


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


//daniel