2009-12-14 4 views
0

다음 문자가 포함 된 텍스트 파일을 저장하는 경우 бU+0431, ANSI 코드 페이지 파일로 저장하십시오.Ruby는 파일의 코드 페이지를 자동 감지합니까?

루비는 ord = 63을 반환합니다. 코드 페이지로 UTF-8로 파일 저장하기 ord = 208, 177

특정 코드 페이지로 인코딩 된 입력을 처리하도록 구체적으로 말해야합니까? 그렇다면 어떻게해야합니까?

답변

5

루비 소스 코드 또는 File.open으로 읽은 파일에 있습니까?

# encoding: utf-8 

을 또는 당신은 (ISO-8859-1 같은) 대부분의 다른 인코딩을 지정할 수 있습니다 : 그것은 루비의 소스 코드에 있다면, 당신은 (루비 1.9) 파일의 상단에이를 추가 할 수 있습니다. 당신이 File.open있는 파일을 읽는 경우

, 당신은 이런 식으로 뭔가를 할 수 :

File.open("file.txt", "r:utf-8") {|f| ... } 

인코딩 주석과 마찬가지로, 당신은 여기에 너무 인코딩의 다른 유형에 전달할 수 있습니다.

+0

File.open을 사용하고 있으며 Ruby 1.8을 사용하고 있습니다. "r : utf-8"이 작동하지 않는 것 같습니다. 1.9 기능입니까? – Maulin

+0

아, 그래, 그게 1.9 특정. 1.8은 다른 인코딩에 있어서는별로 좋지 않습니다. 그러나 루비를'-K U' 옵션으로 호출하거나'$ KCODE' 변수를''U ''로 설정하고 문자열 인코딩을 UTF-8로 설정하는''require'jcode ''를 설정할 수 있습니다. 이게 제대로 작동하는지 모르겠다. 가능한 경우 Ruby 1.9를 사용하도록 권장 할 것이다. – henrikhodne