berbaur menunjukkan output dalam alfabet tidak terbaca (Jepang / Cina?)


15

Saya menggunakan berbaur untuk memvisualisasikan perbedaan antara dua file. berbaur menunjukkan output diff di ... sesuatu seperti Jepang atau Cina?

Adakah yang tahu apa yang bisa terjadi? Masalah lokal? Yang aneh adalah bahwa ketika menggunakan diffatau colordiffdi terminal, mereka bekerja dengan sempurna!

Terima kasih!

Meld menunjukkan keluaran yang tidak bisa dibaca


Saya baru saja mendapatkan ini juga, dengan git berbaur. Anehnya, hanya satu dari file LOCAL / BASE / REMOTE yang terpengaruh.
Ziv

Tidak terbiasa dengan berbaur tetapi saya sarankan mencoba menjalankannya LC_ALL=C melddari baris perintah dan melihat apakah masalah tetap ada.
Sergiy Kolodyazhnyy

Jawaban:


19

Masalah yang sama di sini: Penyandian file tidak terdeteksi dengan benar.

Dalam kasus saya ini adalah karena pengaturan "deteksi-penyandian" berbaur.

Periksa dengan:

$ gsettings get org.gnome.meld detect-encodings
['utf8']

Hanya utf8 yang terdeteksi.

Untuk mengatasi masalah ini, tambahkan 'latin1'atau apa pun penyandian file Anda:

$ gsettings set org.gnome.meld detect-encodings "['utf8','latin1']"

2

Ekstensi pendek ke jawaban terakhir:

Saya harus menambahkan kutipan ke bagian []:

gsettings set org.gnome.meld detect-encodings "['utf8','latin1']"

mengeksekusinya di terminal di Ubuntu 16.04


3
Lebih baik menyarankan edit ke posting daripada membuat jawaban untuk koreksi kecil :)
Zanna

1
dia tidak bisa berkomentar, terlalu sedikit poin kan? :(
Aquarius Power

1

Saya cukup yakin ini adalah masalah penyandian. Terminal Anda mungkin dalam UTF-8 dan file tersebut adalah ISO. Ini adalah masalah baru pada awal 16,04, saya pikir itu mungkin terjadi pada 15,04 juga tetapi saya dapat mengonfirmasi bahwa itu tidak dalam 12,04.

Coba periksa terminal Anda di mana Anda menjalankan berbaur dengan mengetik "lokal". dan Anda harus mendapatkan sesuatu seperti ini:

$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Kemudian ketik "file" untuk masing-masing file Anda dan pastikan mereka cocok dengan terminal Anda.

Di samping catatan saya telah mengalami sejumlah masalah pengkodean antara UTF-8 dan ISO yang seharusnya tidak pernah terjadi di 16.04.

Apa yang berhasil bagi saya adalah menjalankan ikonv pada setiap file:

iconv -f ISO-8859-15 -t UTF-8 file_1.txt >file_1.tmp;
iconv -f ISO-8859-15 -t UTF-8 file_2.txt >file2.tmp;
mv file_1.tmp file_1.txt;
mv file_2.tmp file_2.txt;
meld file_1 file_2

1
Terima kasih atas bantuan Anda! The fileperintah ini tidak sangat informatif. (hanya mengatakan ASCII). Saya mencoba untuk fromdosmengkonversi tetapi masih mendapatkan output yang sama ... Haruskah saya mencoba perintah lain? Terima kasih!
Matifou

Saya menggunakan iconv pada setiap file untuk mengkonversi dari ISO ke utf-8 dan semuanya bekerja secara ajaib. Aneh karena tidak ada karakter yang harus membuat perbedaan antara keduanya.
badner

Saya akan menambahkan perintah untuk jawaban saya
badner
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.