2010-03-05 9 views
1

최근에는 "일반"문자와 함께 태국어 문자가 포함 된 유니 코드로 인코딩 된 텍스트 파일을 편집하고있었습니다. 어떤 이유로 태국어 문자 시퀀스가 ​​끝난 후 새 줄이 나타납니다.문자 인코딩 문제

C를 사용하여 모든 줄 바꿈 문자를 제거하려고 시도한 후 vim을 실행하여 파일을 검사했습니다. 분명히, 각 타이 문자 시퀀스 다음에 "^ M"문자열 (따옴표 제외)이 나타납니다.

왜 이런 일이 발생하며 "^ M"은 무엇입니까? 나는 태국어 문자열에서 마지막 세 문자를 제거하여 문제를 해결할 수 있다는 것을 알았지 만,이 문제를 해결하는보다 우아한 방법이 분명있을 것입니다. ...

+0

파일 인코딩 문제 일 가능성이 큽니다. 유닉스와 윈도우는 개행과는 다른 관행을 가지고있다. C 코드가'\ r'을 사용합니까? 그것은 텍스트 모드 또는 바이너리 모드에서 파일을 열 수 있습니까? –

+0

내 C 코드가 \ n을 사용합니다. 원본 파일은 UTF-8로 인코딩되었습니다. 개행 문자가 문제가되지 않습니다. 외국 문자 만이 문제를 만듭니다 (중국어 문자도 마찬가지입니다). – ryyst

답변

0

이것은 당신과 파일에 태국어 문자가 있습니다. ^M ('당근 M')은 Microsoft (DOS) 캐리지 리턴을 나타냅니다. Dos2unix vim에서 편집하기 전에 파일을 제거하는 파일.