Di tempat kerja saya menemukan banyak file teks Jepang di Shift-JIS dan penyandian lainnya. Ini menyebabkan banyak masalah mojibake (karakter yang tidak dapat dibaca) untuk semua pengguna komputer. Unicode dimaksudkan untuk menyelesaikan masalah semacam ini dengan mendefinisikan satu set karakter untuk semua bahasa, dan serialisasi UTF-8 direkomendasikan untuk digunakan di Internet. Jadi mengapa tidak semua orang beralih dari penyandian khusus Jepang ke UTF-8? Apa masalah dengan atau kekurangan UTF-8 yang menahan orang?
EDIT: W3C daftar beberapa masalah yang diketahui dengan Unicode , mungkinkah ini menjadi alasan juga?
legacy
unicode
character-encoding
Nicolas Raoul
sumber
sumber
Jawaban:
Dalam satu kata: warisan.
Shift-JIS dan penyandian lain digunakan sebelum Unicode tersedia / populer, karena itu adalah satu-satunya cara untuk menyandikan bahasa Jepang sama sekali. Perusahaan telah berinvestasi dalam infrastruktur yang hanya mendukung Shift-JIS. Bahkan jika infrastruktur itu sekarang mendukung Unicode, mereka masih terjebak dengan Shift-JIS karena berbagai alasan mulai dari itu-bekerja-jadi-jangan-sentuh-itu selama pengkodean-apa? untuk bermigrasi-semua-yang ada-dokumen-terlalu mahal .
Ada banyak perusahaan barat yang masih menggunakan ASCII atau latin-1 untuk alasan yang sama, hanya tidak ada yang tahu karena tidak pernah menyebabkan masalah.
sumber
Ini adalah alasan yang saya ingat diberikan karena tidak membuat UTF-8 atau representasi Unicode lainnya sebagai pengkodean karakter default untuk bahasa scripting Ruby, yang terutama dikembangkan di Jepang:
Rupanya, alasan ini dianggap sebagai konyol oleh pengguna Jepang seperti halnya untuk berpendapat kepada pembaca bahasa Inggris bahwa, karena alfabet Latin telah dikembangkan dari alfabet Yunani, cukuplah hanya memiliki satu titik kode tunggal untuk alfa Yunani " α "dan Latin" a ", dan biarkan tampilan diputuskan oleh font yang digunakan. (Sama untuk "β" = "b", "γ" = "g", dll.)
(Perhatikan bahwa saya tidak akan dapat memasukkan karakter yunani di sini di stackexchange jika itu yang terjadi.)
Mungkin ada lebih banyak alasan yang diberikan sehingga saya tidak ingat lagi.
sumber
Jawaban deceze memiliki elemen kebenaran yang sangat kuat untuk itu, tetapi ada alasan lain mengapa Shift-JIS dan lainnya masih digunakan: UTF-8 sangat tidak efisien untuk beberapa bahasa, sebagian besar di set CJK. Shift-JIS adalah, IIRC, pengkodean lebar dua byte sedangkan UTF-8 biasanya 3-byte dan kadang-kadang bahkan 4-byte dalam pengkodeannya dengan CJK dan lainnya.
sumber
Hitung ukuran string / penggunaan memori di antara alasan utama.
Dalam UTF-8, bahasa-bahasa asia timur sering membutuhkan 3 atau lebih byte untuk karakter mereka. Rata-rata mereka membutuhkan 50% lebih banyak memori daripada saat menggunakan UTF-16 - yang terakhir sudah kurang efisien daripada pengkodean asli.
Alasan utama lainnya adalah warisan, seperti yang ditunjukkan oleh tipu daya.
sumber
Warisan dan ukuran penyimpanan, seperti yang dikatakan orang lain, tetapi ada satu hal lagi: karakter Katakana.
Hanya diperlukan satu byte untuk mewakili karakter Katakana di Shift-JIS, sehingga teks Jepang termasuk Katakana membutuhkan waktu kurang dari 2 byte per karakter (1,5 untuk campuran 50/50), membuat Shift-JIS agak lebih efisien daripada UTF-16 (2 byte) / char), dan jauh lebih efisien daripada UTF-8 (3 byte / char).
Penyimpanan murah seharusnya membuat ini menjadi masalah yang jauh lebih kecil, tetapi ternyata tidak.
sumber