JQuery .html 方法字符编码

New*_*tse 4 javascript ajax jquery encoding

我有一个类似的问题: jQuery AJAX 字符编码,但其中提到的任何解决方案都适合我。

\n\n

我制作了三个简单的文件来显示问题:

\n\n

PHP 文件:

\n\n
//prueba.php\necho "n\xc2\xba one two \xe2\x82\xac \xc3\xa1\xc3\xa9\xc3\xad\xc3\xb3\xc3\xba";\n
Run Code Online (Sandbox Code Playgroud)\n\n

JavaScript 文件(我使用 JQuery)

\n\n
//Javascript file\n    function prueba() {\n        $.ajax({\n            type: "GET",\n            contentType: "application/x-www-form-urlencoded;charset=ISO-8859-1",\n            url: "prueba.php",\n        }).done(function( data ) {\n            $("#prueba").text(data); \n            //$("#prueba").html(data); //It does the same encoding error \n        });\n    }\n
Run Code Online (Sandbox Code Playgroud)\n\n

** HTML 文件:**

\n\n
<html>\n    <head>\n        <title>E-COMMERCE</title>\n        <meta content="text/html; charset=iso-8859-1" http-equiv=Content-Type>\n        <meta http-equiv="X-UA-Compatible" content="IE=edge" />\n\n        <script src="javascript/jquery.js" type="text/javascript"></script>\n        <script src="javascript/javascript.js" type="text/javascript"></script>\n    </head>\n\n    <body>\n        <a href="javascript:prueba()">Prueba</a>\n        <div id="prueba"></div>\n    </body>\n\n</html>\n
Run Code Online (Sandbox Code Playgroud)\n\n

当您单击链接 Prueba 时,它会显示:

\n\n
Prueba\nn\xef\xbf\xbd uno dos \xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\n
Run Code Online (Sandbox Code Playgroud)\n\n

当前的网站工作完美,但它不使用ajax,并且它位于我执行此操作的同一服务器中,所以我如何告诉 jquery 返回 ISO-8859-1 而不是它返回的任何内容?我知道理想的情况是始终使用 utf-8,但更改为 utf-8 会给我们带来一些我们现在无法承受的问题。

\n

Pra*_*v 웃 5

为了使浏览器使用正确的编码,您必须向 php 页面添加 HTTP 标头:

header("Content-Type: text/plain; charset=ISO-8859-1");
Run Code Online (Sandbox Code Playgroud)

或者你可以将编码放在 html 的元标记中:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Run Code Online (Sandbox Code Playgroud)