Saya sedang menulis aplikasi kecil di VB.net yang akan memungkinkan saya untuk dengan mudah membuat pengguna "akun Windows 7" dengan kata sandi, bukannya melalui panel kontrol. Masalah yang saya alami adalah bahwa ketika saya membuat file bat di VB.net menggunakan pengkodean UTF-8 itu tidak menulis å ä ö seperti yang seharusnya. Saya telah mencoba semua penyandian yang dapat saya temukan tetapi tidak dapat membuatnya berfungsi.
Jika ada yang tahu mengapa saya mendapatkan ini, beri tahu saya. Terima kasih sebelumnya!
Jawaban:
Edit: aku salah;)
cmd.exe
tidak menerima UTF-8 tetapi Anda harus yakin untuk menyimpannya tanpa yangBOM
pada awal file.Ini tes kedua. Anda dapat menggunakan
chcp 65001
di awal file batch Anda.File batch tidak bisa dari jenis UTF-8. Itu harus ASCII.
Cmd.exe
tidak menerima format lain. Saya melakukan tes kecil dan Anda dapat menggunakan karakter Anda tetapi perlu beberapa pekerjaan.Buat file
test.bat
denganecho Å Ä Ö
. Simpan dengan formatANSI/ASCII
. Buka acmd.exe
dan pastikancmd.exe
penggunaan AndaLucida Console
(untuk menampilkan karakter Unicode).Ketika Anda mengetik file itu akan menampilkan karakter sebagai karakter DOS lama. Anda dapat melihat grafik terjemahan di sini .
Ketika Anda beralih ke "Windows Ansi" - halaman kode (yaitu Latin Eropa Barat) dengan
chcp 1252
karakter ditampilkan dengan benar. Jika mereka juga ditransfer ke utilitas masing-masing tergantung pada utilitas itu.Tapi mengapa Anda membuat file batch untuk ini? Tidak bisakah Anda hanya kode di VB.net?
Edit 2 #:
Ini adalah bagaimana Anda mengatur
Lucida Console
dicmd.exe
:Ada
BOM
3 karakter di awal file UTF-8. (\xEF\xBB\xBF
).Dalam VB.net Anda akan menciptakan sebuah file tanpa sebuah
BOM
seperti ini:sumber
Lucida Console
dan pembuatan file tanpaBOM
(Edit # 2, di bagian bawah). Tetapi apakah membuat pengguna ini melaluinet user
kerja pada command-prompt? Dan apa yang tidak berfungsi jika Anda membuatnya melalui VB.net? Untuk ini kita perlu beberapa contoh-kode (atau pertanyaan terpisah) karena ini akan berfungsi. (BTW Anda menautkan gambar saya, bukan milik Anda, saya kira, dalam komentar Anda)find
tidak menangani input UTF-8 tidak terlalu baik. Tapi Anda bisa menggunakannyafindstr
. Seperti ini:ping 127.0.0.1 -n 2 | findstr /C:" = "
Hal yang memperbaikinya bagi saya adalah menyimpan file sebagai UTF-8 tanpa BOM dan menggunakan kode ini
Hal yang saya tidak gunakan sebelumnya adalah @echo off sehingga dan menggunakan chcp 65001 adalah apa yang memperbaikinya! Terima kasih terlalu Rik untuk semua bantuan :)
sumber