相关疑难解决方法(0)

Jquery:ajax发布和编码

我无法理解为什么我无法从服务器答案中获得正确的ISO-8859-1 charstet.作为遗留代码的工作,我几乎不能改变页面上的字符集编码.

我使用了JQuery调用

$.post("server-side-code", {t:ctext, i:ioff, sid:sessionid},  
    function(data, status) {            
       $('#chk').append(data); 
     });
Run Code Online (Sandbox Code Playgroud)

发布使用javascript创建的textarea值:

<form accept-charset='ISO-8859-1' method='post'>
<textarea cols='40' rows='8' id='commento'></textarea><br>
<input type='button' value='invia' id='submit'></form>
Run Code Online (Sandbox Code Playgroud)

处理请求的服务器端脚本在其顶部声明:

text/html; charset=ISO-8859-1
Run Code Online (Sandbox Code Playgroud)

所以,老实说,我无法弄清楚我应该在编码方面声明什么.尽管如此,当将服务器答案放在HTML元素中时,重音字符"àèéìòù"会反弹为:"ÃÃÃÃ"ÃÃÃ"Ã"

源保存为ascii.尝试执行此操作以对要发布的变量进行基本的Html编码无法解决:

ctext = escapeHTML(ctext);

function escapeHTML (str)
{
   var div = document.createElement('div');
   var text = document.createTextNode(str);
   div.appendChild(text);
   return div.innerHTML;
}; 
Run Code Online (Sandbox Code Playgroud)

有些想法?

谢谢!

jquery

9
推荐指数
1
解决办法
6万
查看次数

Chrome扩展程序ajax发送格式错误的重音字符

我在chrome扩展程序上使用jQuery发送一个AJAX POST请求,但数据没有按预期到达,重音字符变得格格不入.

文字"HÄGERSTEN"变成"H"GERSTEN".

该文本在控制台等中显示正常,只有通过AJAX才能显示如上所述的其他页面.我的AJAX调用是基本的,我通过jQuery $ .ajax发送数据对象.我已尝试使用和不使用contentType,UTF-8和ISO-8859-1.没有不同.

这是我进行AJAX调用的方式:

var newValues = {name: 'HÄGERSTEN'}

$.ajax({
    url: POST_URL,
    type: 'POST',
    data: newValues,
    success: function() ...
});
Run Code Online (Sandbox Code Playgroud)

newValues对象具有更多值,但我从表单中检索它们.但是,我已尝试手动指定这些值newValues['name'] = 'ÄÄÄÄ';,但仍会导致同样的问题.

我发送AJAX的页面的原始表单元素包含属性accept-charset="iso-8859-1".也许这很重要.

目标网站正在使用Servlet/2.5 JSP/2.1.只是因为它可能会有所作为.

我认为这是一个编码问题,因为我知道这应该是因为Chrome扩展要求脚本文件是UTF-8编码的,这可能与插件运行的网站和目标AJAX页面(同一网站)冲突正在使用ISO-8859-1编码,但我不知道如何处理它.我已经尝试了几种解码/编码UTF-8到ISO-8859-1和其他技巧的方法,但没有成功.

我已经尝试使用encodeURIComponent我的值,这只会使它们显示在显示我通过POST发送的值的表单上,例如H%C3%84GERSTEN.

我无法访问网站服务器,无法告诉您这是否是他们身边的问题,但我不这么认为.

UPDATE

现在我已经了解POST数据必须以UTF-8发送!那么转换不是问题吗?

javascript ajax jquery google-chrome google-chrome-extension

7
推荐指数
1
解决办法
520
查看次数

JQuery .html 方法字符编码

我有一个类似的问题: 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 …

javascript ajax jquery encoding

4
推荐指数
1
解决办法
1万
查看次数