2009-06-20 3 views
5

может кто-нибудь помочь? У меня есть небольшая процедура для чтения в файле UTF-8 с помощью javascript с использованием XMLHttpRequest .. в этом файле есть европейские символы, такие как miércoles sábado и т. Д. Обратите внимание на акценты ..чтение в файле utf-8 (javascript XMLHttpRequest) дает плохие европейские символы

Но при чтении .. символы все испорчены up .. Я проверил файл и это прекрасно .. это должна быть процедура для чтения в ..

heres пример у меня есть файл, который содержит файл идеальный, это, оказывается, javascript, но он doesn Дело в том, что любой файл кодировки UTF-8 со специальными символами дает мне ту же проблему

this.weekDays = new Array («Lunes», «Martes», «Miércoles», «Jueves», «Viernes», «Сабадо», «Доминго»);

но когда вернулся и читать в соответствии с процедурой ниже это так (обратите внимание на забавные символы в sábado и Миркулы)

this.weekDays = новый Array («Lunes», «Martes», «MIA © rcoles «Ювеш», «Виернес», «Сабадо», «Доминго»);

Вот моя процедура - его очень мало ...

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; 
+0

вы уверены, что файл находится в UTF-8? Вы задали свой текстовый редактор, чтобы сохранить его с помощью этой кодировки явно? Установка запроса на UTF-8 является нерелевантной, действительно ли ответ в UTF-8 и соответствующий заголовок, заданный в ответе? – jitter

+0

thgis старый, но для тех, кто наткнулся на это, используйте метод * .overrideMimeType ('text/plain; charset = utf8'); * объекта xmlhttprequest из [MDN Using XMLHttpRequest] (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest) –

ответ

1

Я думаю, вы должны использовать другой способ печати символов, например, увидеть код в конце this discussion:

<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> 
1

У меня такая же проблема, и я исправил ее таким образом.

Если вы обслуживаете файл js, содержащий испанские дни как UTF-8, а if не сохраняется как UTF-8, то WONT работает.

Сохраните файл в вашей среде IDE как UTF-8 (то есть, eclipse по умолчанию для js-файлов будет cp1252), а также служить в качестве кодировки UTF-8.

Если ваше приложение Java, сделать фильтр с этим кодом:

response.setCharacterEncoding("UTF-8"); 

имеют хороший один

15

Возможно, ваш файл не в UTF-8, то попробуйте это с JavaScript:

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

я тоже сталкивался с таким же вопросом, я решил таким образом,

в то время как в Получить запрос, мы отправляете данные через URL Так я расшифровал URL и получить желаемый параметр с помощью строковых операций

Рассмотрим, если вы отправляете URL, как это, вар UR1 = «getSubjectList.jsp»; ur1 + = "? Subjectlist =" + str + "& examId =" + examId;

xmlHttp.open ("GET", ur1, true); xmlHttp.send (null);

В getSubjectList.jsp, используйте это: String 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]; 

Таким образом, Вы можете получить требуемые значения