سؤال

لدي ملف نصي مشفر ANSI لا ينبغي ترميزه على أنه ANSI حيث كانت هناك أحرف معلمة لا تدعمها ANSI.أفضل العمل مع UTF-8.

هل يمكن فك تشفير البيانات بشكل صحيح أم أنها مفقودة في تحويل الترميز؟

ما الأدوات التي يمكنني استخدامها؟

هنا عينة مما لدي:

ç é

أستطيع أن أقول من السياق (يجب أن يكون المقهى مقهى) أن هذين الشخصين يجب أن يكونا:

ç é
هل كانت مفيدة؟

المحلول

يحرر:إمكانية بسيطة للتخلص منها قبل الدخول في حلول أكثر تعقيدًا:هل حاولت تعيين مجموعة الأحرف على utf8 في محرر النصوص الذي تقرأ فيه الملف؟قد يكون هذا مجرد حالة قيام شخص ما بإرسال ملف utf8 إليك والذي تقرأه في محرر تم ضبطه على cp1252.

فقط بأخذ المثالين، هذه حالة قراءة utf8 من خلال عدسة ترميز أحادية البايت، من المحتمل أن تكون ISO-8859-1، أو ISO-8859-15، أو cp1252.إذا كان بإمكانك نشر أمثلة لشخصيات أخرى تسبب مشكلات، فمن الممكن تضييق نطاق ذلك أكثر.

نظرًا لأن الفحص البصري للأحرف قد يكون مضللاً، فستحتاج أيضًا إلى إلقاء نظرة على وحدات البايت الأساسية:قد تكون الفقرة التي تراها على الشاشة إما 0xa7 أو 0xc2a7، وهذا سيحدد نوع تحويل مجموعة الأحرف الذي يتعين عليك القيام به.

هل يمكنك أن تفترض أن جميع بياناتك قد تم تشويهها بنفس الطريقة تمامًا - وأنها جاءت من نفس المصدر ومرت بنفس تسلسل التحولات، بحيث لا يوجد على سبيل المثال حرف é واحد في النص الخاص بك، فهو دائمًا أ§؟إذا كان الأمر كذلك، فيمكن حل المشكلة من خلال سلسلة من تحويلات مجموعة الأحرف.إذا كان بإمكانك أن تكون أكثر تحديدًا بشأن البيئة التي تتواجد فيها وقاعدة البيانات التي تستخدمها، فمن المحتمل أن يخبرك شخص ما هنا بكيفية إجراء التحويل المناسب.

بخلاف ذلك، إذا كانت الأحرف المشكلة تحدث فقط في بعض الأماكن في بياناتك، فسيتعين عليك أن تأخذها مثالًا على سبيل المثال، بناءً على افتراضات على غرار "لا يوجد مؤلف ينوي وضع § في نصه، لذلك كلما رأيت ذلك، استبدله بـ ç".يعد الخيار الأخير أكثر خطورة، أولاً لأن تلك الافتراضات حول نوايا المؤلفين قد تكون خاطئة، وثانيًا لأنه سيتعين عليك اكتشاف كل شخصية مشكلة بنفسك، وهو ما قد يكون مستحيلًا إذا كان هناك الكثير من النص الذي يجب فحصه بصريًا أو إذا كان مكتوبًا في لغة أو نظام كتابة غريب عليك.

نصائح أخرى

اتبع هذه الخطوات مع برنامج Notepad++

1- انسخ النص الأصلي

2- في برنامج Notepad++، افتح ملفًا جديدًا، وقم بتغيير التشفير -> اختر الترميز الذي تعتقد أن النص الأصلي يتبعه.جرب أيضًا التشفير "ANSI" حيث تتم أحيانًا قراءة ملفات Unicode على أنها ANSI بواسطة برامج معينة

3- لصق

4- ثم للتحويل إلى Unicode بالانتقال مرة أخرى إلى نفس القائمة:التشفير -> "التشفير بـ UTF-8" (وليس "التحويل إلى UTF-8") ونأمل أن يصبح قابلاً للقراءة

تنطبق الخطوات المذكورة أعلاه على معظم اللغات.كل ما عليك فعله هو تخمين الترميز الأصلي قبل لصقه في برنامج notepad++، ثم تحويله من خلال القائمة نفسها إلى ترميز بديل يستند إلى Unicode لمعرفة ما إذا كانت الأشياء تصبح قابلة للقراءة.

توجد معظم اللغات في شكلين من الترميز:1- تم استخدام نموذج ANSI (ASCII) القديم، المكون من 8 بتات فقط، في البداية بواسطة معظم أجهزة الكمبيوتر.8 بتات تسمح فقط بـ 256 احتمالًا، 128 منها حيث الأحرف اللاتينية العادية وأحرف التحكم، تمت قراءة الـ 128 بت النهائية بشكل مختلف اعتمادًا على إعدادات لغة الكمبيوتر 2- معيار Unicode الجديد (حتى 32 بت) يعطي رمزًا فريدًا لكل حرف بجميع اللغات المعروفة حاليًا والمزيد في المستقبل.إذا كان الملف عبارة عن Unicode، فيجب فهمه على أي جهاز كمبيوتر مثبت عليه خط اللغة.لاحظ أنه حتى UTF-8 يصل إلى 32 بت وهو واسع تمامًا مثل UTF-16 وUTF-32 إلا أنه يحاول الاحتفاظ بـ 8 بتات بأحرف لاتينية فقط لتوفير مساحة على القرص

عندما ترى تسلسلات أحرف مثل § وé، فهذا عادةً ما يكون إشارة إلى أن ملف UTF-8 قد تم فتحه بواسطة برنامج يقرأه بتنسيق ANSI (أو ما شابه).أحرف Unicode مثل هذه:

U+00C2 الحرف اللاتيني الكبير A مع المنعطف
U+00C3 الحرف اللاتيني الكبير A مع التلدة
U+0082 الاستراحة مسموحة هنا
U+0083 لا يوجد استراحة هنا

تميل إلى الظهور في نص ANSI بسبب إستراتيجية البايت المتغير التي يستخدمها UTF-8.تم شرح هذه الإستراتيجية بشكل جيد للغاية هنا.

الميزة بالنسبة لك هي أن ظهور هذه الأحرف الفردية يجعل من السهل نسبيًا العثور على حالات التحويل غير الصحيحة وبالتالي استبدالها.

أعتقد أنه نظرًا لأن ANSI يستخدم دائمًا بايتًا واحدًا لكل حرف، فيمكنك التعامل مع هذا الموقف من خلال عملية بحث واستبدال بسيطة.أو بشكل أكثر سهولة، باستخدام برنامج يتضمن جدولًا يربط بين التسلسلات المخالفة والأحرف المطلوبة، مثل ما يلي:

" -> " # يجب أن يكون اقتباسًا افتتاحيًا مزدوجًا متعرجًا
€؟-> "# يجب أن يكون اقتباس إغلاق مزدوج مجعد

أي نص معين، بافتراض أنه باللغة الإنجليزية، سيكون به عدد صغير نسبيًا من أنواع البدائل المختلفة.

امل ان يساعد.

مع vim من سطر الأوامر:

vim -c "set encoding=utf8" -c "set fileencoding=utf8" -c "wq" filename

في محرر النصوص سامية، ملف -> أعد فتحه بالتشفير -> اختر الترميز الصحيح.

بشكل عام، يتم اكتشاف التشفير تلقائيًا، ولكن إذا لم يكن الأمر كذلك، فيمكنك استخدام الطريقة المذكورة أعلاه.

إذا رأيت علامات استفهام في الملف أو إذا فقدت علامات التمييز بالفعل، فلن يساعد الرجوع إلى utf8 في قضيتك.على سبيل المثالإذا أصبح مقهى مقهى - لن يساعد تغيير التشفير وحده (وستحتاج إلى بيانات أصلية).

هل يمكنك لصق بعض النصوص هنا، فهذا سيساعدنا في الإجابة بالتأكيد.

ثم هناك الأقدم إلى حد ما إعادة ترميز برنامج.

هناك برامج تحاول اكتشاف ترميز ملف مثل تشارديه.ثم يمكنك تحويله إلى ترميز مختلف باستخدام Iconv.ولكن هذا يتطلب أن يظل النص الأصلي سليمًا وألا يتم فقدان أي معلومات (على سبيل المثال، عن طريق إزالة علامات التشكيل أو الحروف المحركة بالكامل).

لقد وجدت طريقة بسيطة لاكتشاف ترميزات الملفات تلقائيًا - قم بتغيير الملف إلى ملف نصي (على جهاز Mac، قم بإعادة تسمية امتداد الملف إلى .txt) واسحبه إلى نافذة Mozilla Firefox (أو ملف -> فتح).سيكتشف Firefox التشفير - يمكنك رؤية ما تم التوصل إليه ضمن عرض -> تشفير الأحرف.

لقد قمت بتغيير ترميز الملف الخاص بي باستخدام TextMate بمجرد أن عرفت الترميز الصحيح.ملف -> أعد فتحه باستخدام الترميز واختر الترميز الخاص بك.ثم ملف -> حفظ باسم وقم بتغيير الترميز إلى UTF-8 ونهايات الأسطر إلى LF (أو ما تريد)

على نظام التشغيل العاشر سيناليز ذلك! يتيح لك عرض أجزاء من ملفك بترميزات مختلفة (جميعها مدعومة من مكتبة ICU).بمجرد أن تعرف ما هو ترميز المصدر، يمكنك نسخ الملف بأكمله (بايت) عبر الحافظة وإدراجه في مستند جديد حيث يتم تحديد الترميز المستهدف (UTF-8 أو أي شيء تريده).

مفيد جدًا عند العمل باستخدام UTF-8 أو تمثيلات Unicode الأخرى UnicodeChecker

لقد وجدت هذا السؤال عند البحث عن حل لمشكلة صفحة الرموز التي أواجهها مع الأحرف الصينية، ولكن في النهاية كانت مشكلتي مجرد مشكلة في عدم عرض Windows لها بشكل صحيح في واجهة المستخدم.

في حالة مواجهة أي شخص آخر لنفس المشكلة، يمكنك إصلاحها ببساطة عن طريق تغيير الإعدادات المحلية في Windows إلى China ثم العودة مرة أخرى.

لقد وجدت الحل هنا:

http://answers.microsoft.com/en-us/windows/forum/windows_7-desktop/how-can-i-get-chinesejapanese-characters-to/fdb1f1da-b868-40d1-a4a4-7acadff4aafa?page=2&auth= 1

تم أيضًا التصويت على إجابة غابرييل لأن النظر إلى البيانات الموجودة في برنامج notepad ++ هو ما أبلغني عن النوافذ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top