मेल अपठित वर्णमाला (जापानी / चीनी?) में उत्पादन दिखाता है


15

मैं दो फाइलों के बीच एक अंतर की कल्पना करने के लिए मेल्ड का उपयोग कर रहा हूं। meld में अलग उत्पादन में पता चलता है ... जापानी या चीनी की तरह कुछ?

किसी भी विचार क्या हो सकता है? एक स्थानीय मुद्दा? क्या अजीब बात है कि जब उपयोग diffया colordiffटर्मिनल में, वे पूरी तरह से काम करते हैं!

धन्यवाद!

Meld अपठनीय उत्पादन दिखाता है


मैं सिर्फ एक git meld के साथ यह मिल गया है। अजीब तरह से, LOCAL / BASE / REMOTE फ़ाइलों में से केवल एक ही प्रभावित है।
Ziv

मेल्ड से परिचित नहीं है, लेकिन मेरा सुझाव है कि इसे LC_ALL=C meldकमांड-लाइन से चलाने की कोशिश करें और देखें कि क्या समस्या बनी रहती है।
सर्गी कोलोडाज़नी

मेरा मामला वास्तव में Windows-1252 एन्कोडिंग था और यहाँ हल किया गया -> stackoverflow.com/questions/38919384/…
eri0o

जवाबों:


19

यहाँ भी यही समस्या है: फ़ाइल एन्कोडिंग का सही पता नहीं लगा है।

मेरे मामले में यह मेल्ड की "डिटेक्ट-एनकोडिंग" सेटिंग्स के कारण है।

इससे जाँच करें:

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

केवल utf8 का पता चला है।

इस समस्या को हल करने के लिए 'latin1'अपनी फ़ाइल में जो भी एन्कोडिंग है उसे जोड़ें :

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

2

अंतिम उत्तर के लिए छोटा विस्तार:

मुझे [] भाग में उद्धरण जोड़ने थे:

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

उबंटू में एक टर्मिनल में इसे निष्पादित करना 16.04


3
एक छोटे से सुधार के लिए एक उत्तर बनाने के बजाय पोस्ट को संपादित करने का सुझाव देने के लिए बेहतर है :)
Zanna

1
वह टिप्पणी नहीं कर सकता, बहुत कम अंक? :(
कुंभ राशि पावर

1

मुझे पूरा यकीन है कि यह एक एन्कोडिंग मुद्दा है। आपका टर्मिनल संभवतः UTF-8 में है और फ़ाइल ISO है। यह 16.04 की शुरुआत में एक नई समस्या है, मुझे लगता है कि यह 15.04 में भी हो सकता है लेकिन मैं पुष्टि कर सकता हूं कि यह 12.04 में नहीं है।

अपने टर्मिनल की जाँच करने का प्रयास करें जहाँ आप "लोकेल" लिखकर पिघल रहे हैं। और आपको कुछ इस तरह मिलना चाहिए:

$ 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=

फिर अपनी प्रत्येक फ़ाइल के लिए "फ़ाइल" टाइप करें और सुनिश्चित करें कि वे आपके टर्मिनल से मेल खाते हैं।

एक साइड नोट पर, मैं यूटीएफ -8 और आईएसओ के बीच कई एन्कोडिंग मुद्दों पर रहा हूं जो वास्तव में 16.04 में कभी नहीं होना चाहिए।

मेरे लिए जो काम किया गया वह प्रत्येक फाइल पर iconv चल रहा था:

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
आपकी सहायताके लिए धन्यवाद! fileआदेश बहुत जानकारीपूर्ण नहीं है। (सिर्फ कहते हैं ASCII)। मैं fromdosकन्वर्ट करने के लिए इस्तेमाल करने की कोशिश की, लेकिन अभी भी एक ही आउटपुट मिलता है ... क्या मैं एक और कमांड की कोशिश करूं? धन्यवाद!
मतिफॉ

मैंने ISO से utf-8 में परिवर्तित करने के लिए प्रत्येक फ़ाइल पर iconv का उपयोग किया और जादुई तरीके से काम किया। अजीब है क्योंकि कोई चर नहीं है जो दोनों के बीच अंतर करना चाहिए।
बैडनर

मैं अपने उत्तर में आदेश
जोड़ूंगा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.