을 보존하지 않습니다 UTF-8 BOM 인코딩없이에, 나는이 얻을 :이 과정에서 잘못된쓰기 데이터가 나는 다음과 같은 문자열을 인코딩
<U+3066><U+3044><U+305F><U+3060><U+3051><U+308B><U+306A><U+3089>
을 무슨 일이야? 그것은 윈도우 7, R 버전에 R.
이것은에 나타나는 나는 2.15
을 보존하지 않습니다 UTF-8 BOM 인코딩없이에, 나는이 얻을 :이 과정에서 잘못된쓰기 데이터가 나는 다음과 같은 문자열을 인코딩
<U+3066><U+3044><U+305F><U+3060><U+3051><U+308B><U+306A><U+3089>
을 무슨 일이야? 그것은 윈도우 7, R 버전에 R.
이것은에 나타나는 나는 2.15
당신이 인수 fileEncoding
를 사용하여 시도 가지고 문자열을 표시하기 위해 작성된 텍스트 파일을 하시겠습니까?
write.table(str, file="chartest", quote=F, col.names=F, row.names=F, fileEncoding="UTF-8")
이것은 Windows에서 R의 성가신 "기능"입니다. 지금까지 찾은 유일한 해결책은 문제의 텍스트 스크립트를 디코딩하는 데 필요한 로캘을 임시로 프로그래밍 방식으로 전환하는 것입니다. 따라서 위의 경우 일본어 로켈을 사용합니다.
## This won't work on Windows
str <- "ていただけるなら"
Encoding(str) #returns "UTF-8"
write.table(str, file="c:/chartest.txt", quote=F, col.names=F, row.names=F)
## The following should work on Windows - first grab and save your existing locale
print(Sys.getlocale(category = "LC_CTYPE"))
original_ctype <- Sys.getlocale(category = "LC_CTYPE")
## Switch to the appropriate local for the script
Sys.setlocale("LC_CTYPE","japanese")
## Now you can write your text out and have it look as you would expect
write.table(str, "c:/chartest2.txt", quote = FALSE, col.names = FALSE,
row.names = FALSE, sep = "\t", fileEncoding = "UTF-8")
## ...and don't forget to switch back
Sys.setlocale("LC_CTYPE", original_ctype)
위의 그림은이 스크린 샷에서 볼 수있는 두 개의 파일을 생성합니다. 첫 번째 파일은 원하는 코드가 아닌 유니 코드 코드 포인트를 보여 주며, 두 번째 파일은 일반적으로 예상되는 글리프를 표시합니다.
지금까지 아무도이 R.에서 일어나는 이유는 this 게시물에 언급로 펄은, 어떻게 든 문제의 둘레에 얻을 수 있기 때문에 Windows의 피할 수없는 기능이 아닙니다 나에게 설명 할 수 없었다.
답변 해 주셔서 감사합니다. 일본어는 단지 예일 뿐이며 모든 언어 유형에 적합한 언어를 원합니다. 그래도 유망한 소리하지 않습니다. – qua
@qua - 예, 당신이 다소 이상한 곳에서 일본어 문자열을 어겼다는 것을 감안할 때 무작위적인 예가 될 것이라고 생각했습니다. 불행히도이 시점에서 R에 대한 더 나은 솔루션이 존재하지 않는다고 생각합니다. 그러나이 질문에 대한 답변을 직접 만드십시오. 나는 (다른 문제들 중에서) 스크립트가 사용되는 것을 추측해야하고 인코딩 유형을 설정하는 확실한 방법이 없기 때문에 미리 스크립트를 알지 못한다면 내 접근 방식에 어려움을 겪을 수 있다는 것에 동의한다. – SlowLearner
@SlowLearner LC_CTYPE의 모든 유효한 값을 나열하는 방법이 있습니까? – panterasBox
제안 해 주셔서 감사합니다. 그것을 시도해도 작동하지 않습니다. – qua
그래, 내가 (Mac OSX에서) 내 작업 컴퓨터에서 시도한 시간에 그것을 작동했지만 그때부터 내 가정용 컴퓨터 (윈도우 7)에서 시도하고 실제로 않았다. – plannapus