New*_*tse 4 javascript ajax jquery encoding
我有一个类似的问题: jQuery AJAX 字符编码,但其中提到的任何解决方案都适合我。
\n\n我制作了三个简单的文件来显示问题:
\n\nPHP 文件:
\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\nJavaScript 文件(我使用 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\nPrueba\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为了使浏览器使用正确的编码,您必须向 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)