Pergunta

alguém pode ajudar? Eu tenho pequeno procedimento para ler em um arquivo UTF-8 com JavaScript usando XMLHttpRequest .. este arquivo tem caracteres europeus como miércoles sábado etc .. Observe os acentos ..

Mas quando é lido nas .. os personagens são toda desarrumada .. Eu verifiquei o arquivo e é perfeito .. deve ser o procedimento para a leitura em ..

heres um exemplo, eu tenho arquivo que contém, o arquivo é perfeito, ele passa a ser javascript, mas isso não importa .. qualquer arquivo de codificação UTF-8 com caracteres especiais me dá o mesmo problema

this.weekDays = new Array ( "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo");

mas quando voltou e lido pelo procedimento a seguir é assim (note os personagens engraçados em sabado e miercoles)

this.weekDays = new Array ( "Lunes", "Martes", "Mia © rcoles", "Jueves", "Viernes", "Sábado", "Domingo");

Aqui está o meu processo - é muito pequena ...

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;
Foi útil?

Solução

Eu acho que você tem que usar uma maneira diferente para imprimir os caracteres, por exemplo, ver o código no final de esta discussão :

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

Outras dicas

Provavelmente o seu arquivo não está em UTF-8, em seguida, tentar fazer isso a partir de javascript:

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

Eu estou tendo o mesmo problema e eu fixo desta forma.

Se você servir o arquivo js contendo os dias espanhol como UTF-8 eo caso não é salvo como UTF-8 que não vai funcionar.

Salve o arquivo em sua IDE como UTF-8 (ie. Padrão eclipse de arquivos js será CP1252) e também servir como codificação UTF-8 Char.

Se seu aplicativo é java, fazer um filtro com este código:

response.setCharacterEncoding("UTF-8");

tem uma boa

Eu também enfrentou o mesmo problema, eu ter resolvido desta maneira,

Enquanto Em Obter solicitação, estamos enviando dados através de url Então eu decodificado a url e se solicitado parâmetro através de operações de cadeia

Considere se você está enviando url como esta, var ur1 = "getSubjectList.jsp"; UR1 + = "? subjectlist =" + str + "& examId =" + examId;

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

Em getSubjectList.jsp, Use isto-- Corda decodedParams = URLDecoder.decode (request.getQueryString (), "utf-8");

string params [] = decodedParams.split ( "&");

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

Desta forma, você pode obter os valores solicitados

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top