Saya bekerja dengan file batch di Windows, menggunakan Notepad, dan Notepad ++. Ketika saya menjalankan file batch, yang semuanya dimulai dengan @echo off
, saya melihat baris pertama (ketika dijalankan pada dua mesin terpisah) membaca ´╗┐@echo off
, dan kemudian semua garis REM di bawahnya muncul juga.
Saya telah mencoba mengubah pengkodean di Notepad ++, tetapi mengklaim mereka sudah berada di pengkodean UTF-8, yang tampaknya benar.
Apa yang harus saya lakukan agar file-file ini berjalan dengan baik?
Jawaban:
Sepertinya pengkodean DOS ASCII dari Byte Order Mark untuk UTF-8
(0xEF 0xBB 0xBF)
: http://en.wikipedia.org/wiki/Byte_order_markDi Notepad ++, coba enkode sebagai "UTF-8 Tanpa BOM" atau sebagai ASCII. Saya pikir penggunaan BOM untuk UTF-8 tidak disarankan karena alasan ini, itu tidak sepenuhnya kompatibel dengan ASCII.
sumber
>>> print u'\ufeff'.encode('utf8').decode('cp850') ´╗┐
╗┐
sejak zaman MS-DOS 5 / Windows 3.11. Windows modern harus menjalankan file batch dengan pengkodean itu untuk kompatibilitas?Ternyata itu perlu diatur ke encoding ANSI agar berfungsi dengan baik. Untuk mengatur ini, saya memilih Encoding -> Encode di ANSI .
Untuk mengetahuinya, saya mencoba membuat file batch dari baris perintah.
Saya kemudian membuka file ini di Notepad ++, dan memeriksa encoding di sudut kanan bawah, yang membaca ANSI sebagai UTF-8 . Saya tidak tahu mengapa itu menambahkan bit terakhir, tetapi tampaknya berfungsi sekarang.
sumber