utf-8ファイル(javascript XMLHttpRequest)を読み取ると、悪いヨーロッパ文字が表示される

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

質問

誰か助けてもらえますか? XMLHttpRequestを使用してjavascriptでUTF-8ファイルを読み込む小さな手順があります。このファイルには、mié rcoles sá badoなどのヨーロッパ文字が含まれています。アクセントに注意してください。

しかし、読み込まれたとき、文字がすべて台無しになった..ファイルをチェックしましたが、完璧です..読み込みの手順である必要があります..

ここに含まれるファイルの例、ファイルは完璧です、たまたまjavascriptでも問題ではありません。

this.weekDays = new Array(" Lunes"、" Martes"、" Mié rcoles"、" Jueves"、" Viernes"、" Sá bado""ドミンゴ");

ただし、以下の手順で返されて読み取られると、次のようになります(sabadoとmiercolesの面白いキャラクターに注意してください)

this.weekDays = new Array(" Lunes"、" Martes"、" Mié rcoles"、" Jueves"、" Viernes" &" SÃ& #161; bado"、" Domingo");

ここに私の手順があります-非常に小さい...

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;
役に立ちましたか?

解決

別の方法で文字を印刷する必要があると思います。たとえば、このディスカッション

<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ではないので、javascriptからこれを試してください:

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

同じ問題が発生しているため、この方法で修正しました。

スペイン語の日を含むjsファイルをUTF-8として提供し、ifがUTF-8として保存されない場合、WONTは機能します。

IDEでファイルをUTF-8として保存し(つまり、jsファイルのeclipseのデフォルトはcp1252になります)、UTF-8文字エンコードとしても提供します。

アプリがJavaの場合、次のコードでフィルターを実行します。

response.setCharacterEncoding("UTF-8");

良いものを持っている

私も同じ問題に直面しました。このようにして解決しました

Getリクエストでは、URLを介してデータを送信しています だから私はURLをデコードし、文字列操作を介して要求されたパラメータを取得します

このようなURLを送信している場合、 var ur1 =&quot; getSubjectList.jsp&quot ;; ur1 + =&quot;?subjectlist =&quot; + str +&quot;&amp; examId =&quot; + examId;

xmlHttp.open(&quot; GET&quot ;, ur1、true);  xmlHttp.send(null);

getSubjectList.jspで、これを使用- String decodeParams = URLDecoder.decode(request.getQueryString()、&quot; utf-8&quot;);

String params [] = decodedParams.split(&quot;&amp;&quot;);

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

この方法で、要求された値を取得できます

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top