2012-09-06 4 views
0

:루비에서 UTF-8로 문자열을 변환 나는이 출력지고있어

돈 \의 u0092t을

유니 코드 문자 (92)은 오른쪽 문자,하지만하지 않는 이유가 표시 ? 이 문자열을 파일에서 읽습니다. 파일에 대한 chardet 출력은 다음과 같습니다 주어진 라인, 그리고

File.open('file.txt', 'r:ISO-8859-2') 

: 자신감

ISO-8859-2은 0.795656700854

이 내가 파일을 여는 오전 방법입니다 파일의 출력은 다음과 같습니다.

puts line.encode('UTF-8') 
+1

출력 방법은 어떻게됩니까? 코드를 입력하십시오. 또한 ISO-8859-2는 텍스트가 * UTF-8이 아님을 의미합니다. –

+0

@AndrewMarshall은 두 가지 질문 (또는 질문 및 성명)을 해결할 수있는 몇 가지 수정 작업을했습니다. – quinn

+0

@quinn 대신'force_encoding ('utf-8')'을 사용하십시오. –

답변

-1

파일 열기 명령문을 다음과 같이 변경했습니다. 'r : wi ndows-1252 : utf-8 '. 나는 chardet가 인코딩을 올바르게 감지하지 못했을 것으로 생각한다.

+0

이 경우 폐쇄 되었습니까? –

+0

그걸 고쳐 준 것 같아. 행운의 추측없이 이것을 고칠 수있는 방법이 있을까? – quinn

+1

"Chardet이 인코딩을 올바르게 감지하지 못했을 것 같습니다." Chardet의 가치는 정확할 확률입니다. ISO-8859-n 세트는 밀접한 관련이 있습니다. 샘플링되는 텍스트에 세트의 모든 문자가 포함되어 있지 않으면 chardet은 틈에있는 것을 추측해야하며 종종 잘못된 것을 추측합니다. 이것은 미친 짓입니다. 이런 일이 발생하는 데에는 많은 이유가 있지만 인터넷에서 여러 문자 세트를 처리하는 것은 훌륭합니다. –

관련 문제