2014-09-14 3 views
4

텍스트 파일에서 텍스트를 읽습니다. 텍스트 파일을 읽어야하는 첫 번째 문자열은 "Algood"이며 spaaaaaace에 유의하십시오. 메모장에서는이 문자열에 스파이가있는 것으로 나타나지만 그렇지 않습니다. 나는 ASCII 코드를 얻기 위해 Asc 기능을 사용문자는 ASCII 63과 비슷하지만 보이지는 않습니다. 제거 할 수 없습니다

"�"c 

, 그것은 ASCII 코드가 63 인 것을 저에게 말한다 : 나는 비주얼 스튜디오의 간략한에서 (제로로부터 시작되는 인덱스) 문자 6을 테스트 할 때, 그것은 나타납니다. 63은 물음표입니다. 그러나 문자열에 ASCII 63이 포함되어 있는지 테스트 할 때는 false를 테스트합니다. 그래서 문자열에 ASCII 코드 63이있는 문자가 포함되어있는 것만 나타납니다. ASCII 코드 63으로 테스트하는 다른 문자가 포함되어 있습니다. 문제가 있습니다. 문자를 제거 할 수 없습니다. 그것을 무엇이라고 부를지를 알아라. 마지막 문자를 제거 할 수는 있지만 텍스트 파일의 모든 문자열이이 문자를 포함하는 것은 아닙니다.

enter image description here

질문 : 무엇을이 문자가 아닌 경우 물음표이며, 어떻게 고유 그래서 식별 할 수 나는 그것을 제거 할 수 있습니까?

+3

유니 코드 값을 얻기 위해'AscW'를 시도하십시오. –

+0

글쎄, 우리는 당신이 파일을 게시하지 않았기 때문에 그것이 무엇인지 말할 수 없었습니다 ... 확실히 알아 내기 위해 16 진수 편집기를 엽니 다. 이 물음표 기호는 글꼴 내에없는 문자가있을 때 나타납니다. – Brad

+0

@RaymondChen, 'AscW'를 사용하여 문자를 평가하려고하면 "정수로 변환 할 수 없습니다"라고 표시됩니다. – Lou

답변

6

Unicode replacement character, U + FFFD, 일명 ChrW(&HFFFD)입니다.

절대로 Asc() 또는 Chr()을 사용하지 마십시오. 이들은 유니 코드를 처리하지 않는 레거시 VB6 함수입니다. Asc()에 멋진 유니 코드 코드 포인트를 전달하면 "?"c의 문자 코드 인 63이 항상 생성됩니다. "나는 당신이 무엇을 말하고 있는지 전혀 모릅니다." 정확한"�"c과 같지만 대신 ASCII 코드를 사용합니다.

블랙 다이아몬드의 죽음을 보는 것은 항상 나쁜 소식입니다. 문자열이 기본 바이트 값에서 변환 될 때 문제가 발생했습니다. 일부 바이트 값이 유효한 문자를 생성하지 않았기 때문입니다. 당신이 정말로 찾고있는 것이 무엇인지, 당신은 항상 GIGO를 피하고 싶습니다. 쓰레기통에있는 쓰레기는 승자가없고 피해자 만있는 추악한 데이터 손상 문제입니다. 당신.

+0

단일 사용 코드를 작성 중이므로 더 깊이 파고 가지 않을 것입니다. 귀하의 답변은 내 문제를 해결했지만, 나는 행복해. :) 또한 – Lou

+0

, 당신이 CHRW (HFFFFD)''하나 추가 F를 가지고, 나는'CHRW (HFFFD)'(즉, 먼저 쓴 방법입니다.) – Lou

+0

내가 생각 데이터가 웹 사이트에서 공급하고, asoiaf.westeros해야한다고 생각 .org를 직접 스프레드 시트에 복사 한 다음 텍스트 파일로 복사하십시오. 내가 Calc에서 같은 문제가 있었기 때문에 문제가 웹 사이트에 있어야합니다. 어쨌든, 일회용 코드 : P. – Lou