chcp 10000
echo hell☺ w☻rld♥! >> "UTF-16 file☺☻♥♦♣♠"
좋습니다. 올바른 파일이 생성되지만 콘텐츠에 유니코드 문자 대신 물음표가 있습니다. 어떻게 고치나요?
답변1
10000은 유니코드 코드 페이지가 아니기 때문에 코드가 올바르지 않습니다. 보다코드 페이지 식별자.
10000 macintosh MAC Roman; Western European (Mac)
...
1200 utf-16 Unicode UTF-16, little endian byte order (BMP of ISO 10646); available only to managed applications
1201 unicodeFFFE Unicode UTF-16, big endian byte order; available only to managed applications
...
12000 utf-32 Unicode UTF-32, little endian byte order; available only to managed applications
12001 utf-32BE Unicode UTF-32, big endian byte order; available only to managed applications
...
65000 utf-7 Unicode (UTF-7)
65001 utf-8 Unicode (UTF-8)
이유는 잘 모르겠지만 붙여넣을 때 명령 프롬프트는 이를 제어 문자로 해석하는 것 같습니다. 특히 SOH(제목 시작, 01), STX(텍스트 시작, 02) 및 ETX(텍스트 끝, 03)입니다.
장점으로는 PowerShell이 이를 적절하게 처리하는 것 같습니다. Notepad++는 결과 텍스트 파일을 "UCS-2 Little Endian"으로 자동으로 열었으며 올바른 문자를 표시합니다.
좋아, UTF-8이 나에게 적합하지 않은 이유를 알아냈습니다. 기본 래스터 글꼴은 유니코드를 지원하지 않으므로 글꼴은 Lucida Console로 설정해야 합니다.
답변2
65001.txt
및 둘 다 1200.txt
동일한 문자열을 포함 абв™
하지만 인코딩이 다릅니다. 명령:
chcp 65001 & type 65001.txt
코드 페이지를 성공적으로 변경했지만 가비지를 표시합니다.
명령:
type 1200.txt
올바른 문자를 표시하지만 명령은
for /f %A in ('type 1200.txt') do echo %A
표시됩니다 абвT
.
따라서 cmd.exe는 코드 페이지 1200(일부 제한 있음)에서 작동할 수 있지만 코드 페이지 65001에서는 만족스러운 결과를 얻을 수 없습니다.