Mengatur UTF8 sebagai Encoding Karakter default pada Windows 7


63

apakah ada cara untuk mengatur Windows 7 agar menggunakan UTF-8 secara global sebagai standar?
itu sangat menjengkelkan untuk mengatur setiap editor teks untuk menggunakannya.


4
Jadi Anda ingin memberi tahu OS sesuatu .. dan kemudian secara ajaib semua editor mengambilnya? :) Berapa banyak editor yang Anda gunakan? Setiap 3 menit satu lagi? Anyway: superuser.com/questions/221593/windows-7-utf-8-and-unicode Dari apa yang saya tahu: Windows menggunakan UTF16 secara internal di mana-mana, dan saya ragu Anda dapat mengubahnya.
akira

1
editor yang saya gunakan: notepad, notepad ++, qt, eclipse, thunderbird, open office, dan beberapa lainnya ... saya tidak hanya berbicara tentang editor teks biasa tetapi semua yang bekerja dengan teks masuk dan keluar. sebagian besar platform editor teks independen menggunakan utf-8 sebagai standar di Linux tetapi menggunakan Latin-1 di Windows.
Baarn

Bukan pada Windows 7 tetapi mungkin pada Windows 10
phuclv

Jawaban:


45

Jawaban singkatnya adalah tidak, itu tidak mungkin .

Untuk menguraikannya, saya khawatir Anda tidak akan menemukan opsi pengkodean global di Windows 7 yang memungkinkan Anda berdua 1) menetapkan standar global yang 2) semua aplikasi yang Anda daftarkan akan patuhi.

Saya juga ingin bertanya apa masalah yang ingin Anda pecahkan?

Terserah aplikasi untuk memilih apakah mereka menggunakan unicode secara internal untuk mewakili data. Meskipun penggunaan unicode dianjurkan , Anda mungkin tidak pernah yakin bahwa semua aplikasi Anda sebenarnya mendukungnya secara internal.

Apa yang dapat Anda lakukan , adalah mengubah pengkodean karakter default untuk masing-masing aplikasi yang terdaftar:

  • Untuk Eclipse, penyandian default untuk file baru dapat diatur dari Windows> Preferensi> Umum> Jenis Konten (lihat posting di Formulir Komunitas Eclipse )
  • Untuk Notepad ++, navigasikan ke Pengaturan> Preferensi> Dokumen Baru / Default / Direktori dan atur Pengkodean ke UTF-8
  • Sedangkan untuk Thunderbird, saya cukup yakin sudah menggunakan UTF-8 sebagai pengkodean default? (lihat catatan tentang pengodean karakter ini )
  • Dalam hal OpenOffice (dan LibreOffice), Anda sebenarnya tidak perlu peduli tentang penyandian, karena dokumen yang disimpan oleh OpenOffice didasarkan pada XML, di mana penyandian ditentukan secara internal dalam file-file XML (dan UTF-8 sudah default di sana juga)
  • Dari sudut pandang UTF-8, PowerShell rumit. Ini memiliki penyandian default untuk UTF-16LE.
    • Untuk mengeluarkan file dari PowerShell ke UTF-8, lihat jawaban ini
    • Untuk mengubah penyandian default, lihat jawaban ini

4
bukan jawaban yang saya harapkan tetapi saya pikir saya harus hidup dengan kebenaran, terima kasih =)
Baarn

untuk windows notepad?
Mimouni

23

Itu tidak mungkin terutama karena Windows tidak mengizinkan UTF-8 sebagai sistem codepage ANSI meskipun ia memiliki codepage ANSI untuk UTF-8, codepage 65001 . Tampaknya ada beberapa alasan untuk ini:

  • Ketika Unicode masih baru, Microsoft memutuskan UCS-2 akan menjadi cara terbaik untuk mendukung Unicode. Saat itu Unicode 16-bit.
  • Windows memiliki satu codepage ANSI untuk setiap bahasa yang didukung , tidak seperti Unix dan Linux di mana bahasa dan penyandian dapat diatur secara independen.
  • Halaman kode 65001 tidak berfungsi di mana-mana. Khususnya itu rusak dengan beberapa dukungan MultiByte di Windows yang mengharapkan karakter multibyte memerlukan satu atau dua byte sedangkan UTF-8 membutuhkan antara satu dan empat byte. The WriteFile()API misalnya mengembalikan hasil yang salah di bawah halaman kode 65001 yang gelembung melalui semua kode perpustakaan mengandalkan itu seperti write().

Almarhum Michael Kaplan yang bekerja untuk internasionalisasi di Microsoft memiliki blog, "Sorting it all Out" , dengan beberapa posting pada topik terkait. Saya mengirim email kepadanya secara langsung tentang beberapa masalah ini di masa lalu.


Perhatikan bahwa ketika Windows (NT) dikandung, tidak ada UTF-8. Jadi UCS-2 sebenarnya adalah pilihan yang sangat waras (dan tidak mungkin untuk berubah setelah itu, kecuali UTF-16).
Joey

2
Alasannya adalah karena UTF-8 lokal mungkin merusak beberapa fungsi (contoh yang mungkin adalah _mbsrev) karena ditulis untuk mengasumsikan penyandian multibyte yang digunakan tidak lebih dari 2 byte per karakter, sehingga sampai sekarang kode halaman dengan lebih banyak byte seperti GB 18030 (cp54936 ) dan UTF-8 tidak dapat ditetapkan sebagai lokal. . Tapi setidaknya sekarang ini memungkinkan untuk mengatur lokal UTF-8 pada Windows 10
phuclv
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.