2016-06-22 3 views
0

문제는 UTF를 사용하여 대체 실행 -8 16 진수, 문자의 UTF-32 16 진수 값. 내가 참조 watch window에서C# 폼 피드/여성 부호 문자 '♀'교체 문제는 그때 다양한 형식으로 인코딩하려고했습니다</p> <pre><code>string contents = File.ReadAllText(file); </code></pre> <p>파일을 읽을 때 C# 코드에서 용지 공급 문자를 식별

'\ F'문자

하지만 난 밖으로 확장 할 때 visualizer은 내가

어떻게 올바른 문자가 식별 할 실제 여성 캐릭터가 검색 될 참조? \ f 또는 여성 기호의 일부 변형?

실제로 C#에서 그것을 발견에 행운과 인코딩 값의 변동이 사이트에서 보았다 : www.fileformat.info/info/unicode/char/2640/index.htm 귀하의 질문은

+0

그래서 실제로'\ f'라는 문자를 찾으려고합니까? – pay

+0

나는 이것에 대해 정말로 이해하지 못한다 : 당신은 텍스트 안에'\ f' /'♀' 문자를 찾으려고 노력하고 있습니까? – C4u

+1

'int pos = contents.IndexOf ('\ f');'와 같은 것을 시도해 봤습니까? 반환 값은 문자열에있는 문자의 첫 번째 위치를 알려줍니다. 또는 어커런스가없는 경우 -1입니다. 'string contents = contents.Replace ('\ f', 'X');'는 그 문자의 모든 어커런스를''X ''로 바꿉니다. –

답변

1

그래서 저는 UTF8 인코딩의 다음과 같은 조합으로 오늘 아침에 모든 것을 다시 실행하고 '\ f를'

string contents = File.ReadAllText(file, Encoding.UTF8); int pos = contents.IndexOf("\f");

에서 검색하고 마지막 타격을 얻었다.

시계와 시각화 프로그램이 캐릭터를 다르게 표시하는 이유는 여전히 알 수 없지만 검색 조합은 작동합니다.

모두에게 감사드립니다.

1

문자가 \f 또는 인 문자인지 찾으려는 경우 약간 애매합니다.

당신이 문자를 찾기 위해 노력하는 경우 16 진수 코드 0x2640를 사용하거나 그대로 단순히 문자를 사용 :

var ctn = File.ReadAllText("file.txt", Encoding.UTF8); 
int pos = ctn.IndexOf((char)0x2640); 
int pos1 = ctn.IndexOf('♀'); 

명확한 설명 : 나는 혼란에서 온 것 같아요 문자 ALT + 12와 문자 ALT + 2640이 종종 동일한 '여성 기호'문자를 생성한다는 사실은 ALT + 12가 장치 제어 코드 인 ALT + 12이므로 역사적인 이유로 사용됩니다. Alt + 2640 유니 코드 문자는 항상 기호를 생성하도록 특별히 설계되었습니다.

+0

내 질문의 모호함에 사과드립니다. '\ f'문자 또는 실제 '여성 기호'를 검색해야하는지 확신 할 수 없습니다. 나는 원래의 포스트를 스크린 샷으로 업데이트하여 '\ f'와 '♀'문자 모두를 보여주는 문자열을 보는 방법에 따라 볼 수 있습니다. 나는 다음을 사용하여 특수 문자를 찾으려고 시도했다. (char) 0xE2, (char) 0x99, (char) 0x80, "\ u2640", "\ f", 이제 제안 (char) 0x2640과 '♀' 행운이 없음 –

+0

@ J.Romeo 괜찮습니까? 잘 모르겠다. 뒤로 물러나서 둘 사이의 차이점에 대해 생각해야했다. 다행히 대답을 찾았습니다! –