2011-05-03 9 views
2

은 내가유니 코드 문자열을 char로 변환하는 방법은 무엇입니까?

" '\의 u0641'", " '\의 u064A', '\의 u0649', '\의 u0642', '\의 u0625', '\ u0644으로 작성됩니다 Unicodes의 설정하는 텍스트 파일을 ','\ 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 메서드를 사용하여 파일 읽기를 시작했습니다. 위의 줄을 선으로 표시 할 수있게되어 모든 유니 코드를 char로 변환하여 읽을 수있는 문자열을 얻을 수있게되었습니다. 나는 약간의 논리를 시도했다. 그러나 그것은 "\ u00641"문자열을 char로 변환하는 것으로 고착되었다.

+0

이 경우이 파일을 얻고있다 에서? 그것을 파싱하는 것보다는 파싱하는 것을 변경하는 것이 더 간단 할 수 있습니다. –

+0

우리 프로젝트에서이 파일들을 사용하고 있습니다. 내가 무슨 말을하고 싶은지 모르겠다 – rubyraj

+0

하지만 파일은 어디서 왔는가? 그것들은 무엇이 만들어 졌는가? –

답변

3

예를 들어 Regex를 사용하여 개별 숫자가 포함 된 문자열을 추출하고 각각에 Int16.Parse를 적용한 다음이를 char로 변환 할 수 있습니다.

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

빠른 응답을 주셔서 감사합니다 :) – rubyraj

+0

내가 유니 코드로 char을 변환 할 수있는 방법을 말해 줄 수 있습니까 – rubyraj

+1

** char **는 암시 적으로 ushort, int, uint, long, ulong, float, double 또는 decimal로 변환 될 수 있습니다 . (MSDN에서) 다음과 같이 작성할 수 있습니다. ushort code = c; 및 변수 * 코드 *는 c의 유니 코드 값을 보유합니다. – Dmitry

0

각 유니 코드 문자를 얻기 위해 행을 구문 분석 할 수 있습니다. 당신이

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

// 다니엘

관련 문제