Toplu iş dosyasının başlangıcında tuhaf karakterler (')


30

Not Defteri'ni ve Notepad ++ kullanarak Windows'ta toplu iş dosyalarıyla çalışıyorum. Hepsi ile başlayan toplu iş dosyalarını çalıştırdığımda, @echo offilk satırı (iki ayrı makinede çalışırken) okumayı ´╗┐@echo offve ardından altındaki tüm REM satırlarını da görüyorum .

Kodlamayı Notepad ++ uygulamasında değiştirmeyi denedim, ancak doğru bir şekilde görünen UTF-8 kodlamasında olduklarını iddia ediyor.

Bu dosyaların düzgün çalışabilmesi için ne yapmam gerekiyor?


@luu benim sorum notepad ++ hakkında özel olarak
Kanadalı Luke MONTAJ MONICA

UTF8 ile kaydederken normal Not Defteri'nin BOM olmadan kaydetmeye izin vermediğini ve bu karakterleri ekleyeceğini unutmayın.
dmcontador

Yanıtlar:


26

UTF-8 için Bayt Sipariş İşaretinin DOS ASCII kodlamasına benziyor (0xEF 0xBB 0xBF): http://en.wikipedia.org/wiki/Byte_order_mark

Notepad ++ 'da "UTF-8 BOM olmadan" veya düz ASCII olarak kodlamayı deneyin. UTF-8 için BOM kullanımının bu nedenle tavsiye edilmediğini düşünüyorum, ASCII ile geriye doğru tam olarak uyumlu değil.


2
Kesinlikle doğru, 'DOS ASCII', Python'da yapılan deneylerle gösterildiği gibi 850 numaralı DOS kod sayfasıdır:>>> print u'\ufeff'.encode('utf8').decode('cp850') ´╗┐
del 17:00

@deltab Ah, iyi buluyorum. Kodlamanın özel olarak ne adlandırıldığından emin değildim, sadece ╗┐MS-DOS 5 / Windows 3.11 günlerinden beri çizgi resim karakterlerini görmedim . Modern Windows uyumluluk için bu kodlama ile toplu iş dosyalarını çalıştırmalı mı?
baochan

1
Yeni bir metin dosyası oluşturmak için Visual Studio'yu kullanırken bununla karşılaştım.
Sam Goldberg

9

Düzgün çalışması için ANSI kodlamasına ayarlanması gerektiği ortaya çıkıyor . Bunu ayarlamak için ANSI’de Kodlama -> Kodlama seçtim .

Bunu anlamak için komut satırından bir toplu iş dosyası oluşturmaya çalıştım.

echo @echo off > batch.bat
echo REM Some comment... >> batch.bat
echo echo Hello world! >> batch.bat

Daha sonra bu dosyayı Notepad ++ 'da açtım ve kodlamayı sağ alt köşede kodlamayı kontrol ettim, ANSI'yi UTF-8 olarak okudum . Neden bu son biti eklediğini bilmiyorum, ama şimdi çalışıyor gibi görünüyor.


ANSI gerçekten bir kodlama değil. Muhtemelen Windows sisteminizin varsayılan kod sayfasını gösterir . Bu, yapılandırmaya bağlı olarak bir sistemden diğerine değişecektir.
Cody Gray,

Bu doğru değil. Malzeme Listesi, yazıyı kodlayan bir karakter setidir.
Thorbjørn Ravn Andersen

@ ThorbjørnRavnAndersen Kim yanlış, ben mi Cody mi?
Kanadalı Luke MONICA'YI
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.