최신 MS Windows 프로그램 및 유틸리티 (예 : SQL Server)는 UTF-16 LE (작은 끝) 문자 인코딩을 사용하여 텍스트 파일을 만듭니다.
기본적으로 grep
과 같은 Unix 유틸리티는 텍스트 파일 인 것으로 해석하지 않고 대신 이진 파일 (바이트 스트림)으로 처리합니다. 당신이 유닉스 에뮬레이터 (예를 들어, Cygwin에서)를 실행하는 경우
의 iconv
도구는 는 UTF-8, 예를 들어, 같은 다른 인코딩이 변환하는 데 사용할 수 있습니다
:set encoding=utf8
:e ++encoding=utf16le
첫 번째 명령은 만드는 데 사용됩니다 : 당신은 이미 당신이, 당신은 다시 열 수는이 빔 명령을 사용하여 빔에 열려있는 파일이 있음을 언급 한 이후
iconv -f utf16le -t utf8 in.sql > out.sql
파일이 Vim 버퍼에로드 될 때 유니 코드 문자가 올바르게 표현 될 수 있습니다. 기본 인코딩은 일반적으로 UTF-8로 설정되므로 필요하지 않습니다.
Vim은 파일을 UTF-16LE로 인코딩 된 것으로 자동 인식하지 않으므로 두 번째 명령이 편집을 위해 파일을 다시 엽니 다. 파일을 구성하는 바이트 스트림을 해석하는 데 사용해야하는 문자 인코딩을 지정해야합니다. 자세한 내용은 http://vim.wikia.com/wiki/Reloading_a_file_using_a_different_encoding
을 참조하십시오. 파일이 Vim 버퍼에 올바르게로드되었으므로 fileencoding
옵션을 파일을 저장할 문자 인코딩으로 설정할 수 있습니다.
어떻게 스크립트를 생성 했습니까? 출력을위한 인코딩을 설정하는 ScriptingOptions ... 옵션이 있습니다 (https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.scriptingoptions.encoding.aspx).하지만 저는 아닙니다. SSMS 옵션에 노출 된 것을 볼 수 있습니다. 내 의문은 파일이 UTF-16이고 vim이 UTF-8을 예상 (또는 해석)하고 있다는 것입니다. –
Tasks -> Generate Scripts를 사용했습니다. –
약간의 연구를했는데, MS에 대한 오랜 요청 인 것 같습니다. 적어도 다른 인코딩을 선택할 수있는 옵션을 사용자에게 제공하는 것입니다. ScriptingOptions.Encoding을 UTF-8로 설정할 수있는 PowerShell 스크립트에서 손을 사용해보십시오. 그렇지 않으면 아래에 제공된 vim 팁을 좋아합니다. –