قراءة في UTF-8 ملف (جافا سكريبت مدعوم) يعطي الأحرف الأوروبية سيئة

StackOverflow https://stackoverflow.com/questions/1021086

سؤال

ويمكن لأي شخص أن تساعد؟ لدي الإجراء صغير لقراءة في ملف UTF-8 مع جافا سكريبت باستخدام مدعوم .. هذا الملف يحتوي على أحرف الأوروبية مثل miércoles sábado الخ .. لاحظ لهجات ..

ولكن عندما يتم قراءتها في .. الشخصيات وافسدت كل شيء .. لقد راجعت الملف وأنه هو الكمال .. يجب أن يكون الإجراء للقراءة في ..

وهيريس مثالا لدي ملف يحتوي على، الملف هو الكمال، فإنه يحدث أن تكون جافا سكريبت ولكن لا يهم .. أي ملف ترميز UTF-8 مع أحرف خاصة يعطيني نفس القضية

وthis.weekDays = جديد صفيف ( "Lunes"، "Martes"، "Miércoles"، "JUEVES"، "Viernes"، "Sábado"، "دومينغو")؛

ولكن عندما عاد وقراءتها من قبل الإجراء أدناه هو مثل هذا (لاحظ الأحرف مضحك في sabado وmiercoles)

وthis.weekDays = صفيف الجديد ( "Lunes"، "Martes"، "وزارة الداخلية © rcoles"، "JUEVES"، "Viernes"، "Sábado"، "دومينغو")؛

وهنا هو الإجراء بلدي - لها صغيرة جدا ...

var contentType = "application/x-www-form-urlencoded; charset=utf-8";

var request = new XMLHttpRequest(); 
request.open("GET", path, false);
request.setRequestHeader('Content-type', contentType)

if (request.overrideMimeType) request.overrideMimeType(contentType);

try { request.send(null); }
catch (e) { return null; }
if (request.status == 500 || request.status == 404 || request.status == 2 || (request.status == 0 && request.responseText == '')) return null;

//PROBLEM HERE is with european charcters that are read in

print(request.responseText);


return request.responseText;
هل كانت مفيدة؟

المحلول

وأعتقد أن لديك لاستخدام طريقة مختلفة لطباعة الأحرف، على سبيل المثال، راجع التعليمات البرمجية في نهاية <لأ href = "http://www.codingforums.com/archive/index.php/t- 4588.html "يختلط =" نوفولو noreferrer "> هذه المناقشة :

<script>
  function getUnicode(num) {
    num = num.toString(16);
    if (num.length < 3) {
      for ( var i = num.length; i < 4; i++) {
        num = '0' + num;
      }
    }
    return ( "&#" + num + ";" );
  }

  for ( var i = 0; i < 65355; i++) {
    document.write(getUnicode(i));
  }
</script>

نصائح أخرى

وربما ملف ليست في UTF-8 ثم حاول هذا من جافا سكريبت:

var request = new XMLHttpRequest();
request.open("GET", path, false);
request.overrideMimeType('text/xml; charset=iso-8859-1');

وأواجه نفس المشكلة وأنا ثابت في هذا السبيل.

إذا خدمة ملف شبيبة يحتوي على أيام الأسبانية كما UTF-8 وإذا لم يتم حفظها في UTF-8 متعود العمل.

وحفظ الملف في IDE الخاص بك كما UTF-8 (أي كسوف الافتراضي لملفات شبيبة سيكون cp1252) وخدمتها أيضا الترميز UTF-8 شار.

وإذا كان تطبيقك جافا، والقيام التصفية مع هذا الرمز:

response.setCharacterEncoding("UTF-8");

ويكون فكرة جيدة

وأنا أيضا واجهت نفس المشكلة، ولقد تحل بهذه الطريقة،

وأثناء وجوده في الحصول على طلب، ونحن بصدد إرسال البيانات عبر رابط لذلك أنا فك عنوان الموقع والحصول على طلب المعلمة من خلال عمليات سلسلة

والنظر إذا كنت تقوم بإرسال رابط من هذا القبيل، فار ur1 = "getSubjectList.jsp". "؟ subjectlist =" ur1 + = + شارع + "& examId =" + examId؛

وxmlHttp.open ( "GET"، ur1، صحيح)؛  xmlHttp.send (خالية)؛

في getSubjectList.jsp، استخدام this-- سلسلة decodedParams = URLDecoder.decode (request.getQueryString ()، "UTF-8")؛

وسلسلة بارامس [] = decodedParams.split ( "&")؛

     String subjectlist[]=params[0].split("=");
     String examId[] = params[1].split("=");
     String center = subjectlist[1];
    String exam = examId[1];

في هذه الطريقة، يمكنك الحصول على القيم المطلوبة

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