سؤال

لدي ملف ترميز ANSI.ومع ذلك فإنه يظهر الحروف العربية في داخله.هذا ملف نصي تم إنشاؤها من قبل بعض البرامج (ليس لدي معلومات) ولكن يبدو أن هناك نوع من الترميز الداخلي (إن القول و إذا كان من الممكن) على الحروف العربية لجعل تظهر.

هل هناك مثل هذا الشيء ؟ إذا لم يكن كذلك ، كيف يمكن ANSI الملف تظهر الحروف العربية?

*إذا كان ممكن شرح في كود جافا


الطبعة 01

عندما فتحه في المفكرة++ فإنه يدل على أن صفحة الترميز ANSI.يرجى التحقق من هذه الصورة:

http://www.4shared.com/file/221862075/e8705951/text-Windows.html


الطبعة 02

يمكنك التحقق من الملف من:

http://www.4shared.com/file/221853641/3fa1af8c/data.html

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

المحلول

وحاولت فتح الملف في كل من فايرفوكس وأوبرا. كان لي لضبط ترميز الأحرف إلى اللغة العربية ويندوز 1256 للحصول عليه لعرضه بشكل صحيح في كل المتصفحات، لذلك ليس من المرجح أن ترميز الملف ليكون ذلك.

ملحوظة: أنا سجلت في الأصل في ذلك التعليق، ولكن طلب لجعله جوابا.

نصائح أخرى

كيف يمكنك أن تعرف أنه ANSI المشفرة?إذا لم يكن المتعددة البايت ترميز مثل UTF-8, تخميني هو ترميز باستخدام اللغة العربية كود صفحة مثل هذه: Windows-1256.

هل يمكن أن ننظر إلى الملف في محرر عرافة ومعرفة ما هي الأرقام العربية الشخصيات و هذا الطريق في محاولة لمعرفة أي ترميز / صفحة التعليمات البرمجية تم إنشاؤه مع.

الجواب القصير:على الأرجح, النص الخاص بك لم يكن الملف "ANSI"المشفرة ، ولكن utf-8.

الجواب طويل:

أولا مصطلح "ANSI" (في ويندوز) لا يعني ثابت ترميز;إنه يعني يعتمد على إعدادات اللغة.على سبيل المثال ، في أوروبا الغربية والولايات المتحدة الأمريكية ، فإنه عادة ما يكون Windows-1252 (البديل ISO/IEC 8859-1, المعروف أيضا باسم اللاتينية-1) ، في اليابان ، إنه التحول JIS, و في البلدان العربية هو ISO/IEC_8859-6.

إذا كنت تستخدم غير النسخة العربية من ويندوز و يتنفس لا تغيير إعدادات اللغة الخاصة بك ، ويمكنك أن ترى الحروف العربية في الملف عند فتحه في المفكرة ثم هو بالتأكيد ليس في أي من هذه ANSI ترميزات.بدلا من ذلك, فمن المحتمل Unicode.

علما بأنني لا أقصد "يونيكود" ، والتي على ويندوز يعني عادة UTF-16LE.يمكن أن يكون UTF-8 وكذلك.وكلاهما ترميزات التي يمكن ترميز كل 100.000+ الشخصيات المحددة حاليا في يونيكود ، لكنها تفعل ذلك بطرق مختلفة.كلاهما طول متغير ترميزات, بمعنى أن ليس كل الشخصيات تم ترميزها باستخدام نفس عدد البتات.

في UTF-8 ، كل حرف ترميز واحد إلى أربعة بايت.ترميز تم اختياره مثل أن أحرف ASCII يتم ترميز في بايت واحد.

في UTF-16, كل حرف ترميز اثنين إما أربعة بايت.هذا الترميز أصلا تم اختراعه عندما Unicode كان أقل من 64 كيلو حرفا واحد ولذلك يمكن ترميز كل حرف في واحدة من 16 بت كلمة.في وقت لاحق, عندما أصبح واضحا أن Unicode أن تنمو خارج 64 كيلو بايت الحد ، مخطط اخترع فيها أزواج من الكلمات في نطاق 0xD800-0xDFFF تستخدم لتمثيل شخصيات خارج الأولى 64 كيلو بايت (ناقص 0x800) حرفا.

لمعرفة ما هو في الواقع في الملف فتحه في محرر عرافة:

  • إذا كان أول اثنين بايت FF FE, فمن المحتمل UTF-16LE (little endian)
  • إذا كان أول اثنين بايت FE FF, فمن المحتمل UTF-16BE (big endian ، من غير المرجح على ويندوز)
  • إذا أول ثلاث بايت EF BB BF, فمن المحتمل UTF-8
  • إذا كنت ترى الكثير من 00 بايت, فمن المحتمل UTF-16 (أو UTF-32, إذا كنت ترى أزواج 00 بايت)
  • إذا كانت الأحرف العربية تحتل بايت واحد ، فمن المرجح ISO-8859-6 (على سبيل المثالش سوف يكون D5).
  • إذا كانت الأحرف العربية تحتل متعددة بايت, فمن المحتمل UTF-8 (مثلا ، ش سوف يكون D8 B4).
<اقتباس فقرة>   

هل هناك شيء من هذا القبيل؟

لا.

<اقتباس فقرة>   

إذا لم يكن كذلك، كيف يمكن للملف ANSI تظهر الحروف العربية؟

<ديل> انها ملف لا ترميز ويندوز ANSI. الأرجح، فإنه يستخدم <لأ href = "http://en.wikipedia.org/wiki/Variable-width_encoding" يختلط = "نوفولو noreferrer "> متغير عرض ترميز ، وعلى الأرجح UTF-8: (في الواقع، تم تصميمه بهذه الطريقة) العديد من المناصب الطابع شيوعا في UTF-8 ليعادل مواقعهم في US-ASCII، والاستدلال أيضا ويندوز-ANSI.

تعديل : لدينا أن أشكر Microsoft لهذا الارتباك. "ANSI" لم يتم تحديد بشكل جيد عندما يتعلق الأمر ترميزات. عادة التي من المفترض أن يرشح نفسه لالافتراضي Windows ترميز مع مخطط الشفرة 1252 ( "ويندوز 1252")، والذي يحدث أن تتوافق مع الحروف الهجائية "الغربية" المشتقة من اللاتينية.

ولكن، في بلدان أخرى الافتراضي الترميز المستخدم في ويندوز (في إصدارات ويندوز القديمة ... اليوم، الافتراضي هو UTF-8) هو <م> لا ويندوز 1252 ولكن بدلا ترميز مختلف، وهو بعد ذلك وتسمى أيضا "ANSI". في هذه الحالة، مخطط 1256.

وترميز الأحرف ANSI يسمح ل217 حرفا ولا يحتوي على الحروف العربية. أعتقد ربما كان الملف يستخدم ترميز بديل.

وAnwsering تحرير الخاص بك، يبدو أن المشكلة هي مع المفكرة ++، لأن ما يتم عرضه من الواضح تفوق قدرات محارف ANSI.

أولا أنا تحميل الملف وحاولت استخدام همة للتحقق الترميز، وأنه لا يبدو أن يعرف، وقال على الجهاز الثاني هو latin1 التي يمكن أن تكون على غرار ما حدث في المفكرة ++ (أعطى الجواب العامة). < br> و هكذا فعلت file data.txt وكان الانتاج هذا:

data.txt: ISO-8859 text, with CRLF line terminators

وآمل أن يساعد هذا.

تعديل : في
باستخدام متصفح شيء أظهرت أن هذه الإجابة غير صحيحة.

وISO-8859-4 وISO-8859-13 يمكن عرض النص، دون أخطاء، لكن الشخصيات التي لا باللغة العربية.

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