我目前正在编写一个法国网站.有一个计划页面,侧面的链接可用于加载另一天的计划.
这是我用来做这个的JS:
实际的AJAX就像一个魅力.我的问题在于对请求的响应.
因为它是法国网站,所以有许多重音字母.出于这个原因,我正在使用ISO-8859-15字符集.但是,在对我的AJAX请求的响应中,重音变成了?因为字符编码似乎被改回到UTF-8.
我该如何避免这种情况?我已经尝试在请求的文档顶部添加一些PHP来设置字符集:
但这似乎也不起作用.有什么想法吗?
此外,虽然你们中的任何人都在看这里...为什么最新的列在加载新页面时似乎变得更小,导致表扭曲并且每个 干杯 在AJAX调用上指定内容类型解决了我在挪威站点上的问题. 您还必须在服务器上指定charset. UTF-8应该处理所有重音和外来字符 - 为什么不在数据源上使用它? 编辑 一切都应该是UTF-8.我在notepad ++中加载文件,转换为utf-8并手动将字符改为重音符号.一旦完成,一切都像魅力一样. 顺便说一句,除非您的服务器被定义为php-process .html文件,否则您使用ajax加载的文件不会获得您的iso字符集.如果你坚持使用iso charset,请求一个php文件而不是一个html文件,并在头文件中定义charset(不在文件本身中) 什么帮助我最终 您需要将服务器设置为使用ISO-8859-15作为字符编码(添加适当的HTTP标头).在html的主体中执行它将无济于事. 我可以看到这一行 在您的HTML的源头.这不应该发生.使用Live HTTP标头我看不到相应的charset HTTP标头.将其用于第一页和ajax服务. 我强烈建议使用javascript escape()方法 你可以通过抓取像这样的表单值来使用它与jQuery: 对于我的PHP应用程序,解决方案包括每个变量的utf8_decode函数 例如:(服务器端) Abraços!(再见!!!) 在ajax文件中打印出变量时.放一个 在他们周围,看看它是否有效.在冰岛的ajax应用程序中为我工作.列
都包裹到下一行?
1> Magnar..:$.ajax({
data: parameters,
type: "POST",
url: ajax_url,
timeout: 20000,
contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15",
dataType: 'json',
success: callback
});
2> yoavf..:
[ 存档测试文件的副本.]与您的数据
链接已经死了.
3> 小智..:$str=iconv("windows-1250","UTF-8",$str);
4> kgiannakakis..:
5> Doug..:var encodedString = escape($("#myFormFieldID").val());
6> 小智..:$_POST
.if( strtoupper($_SERVER['REQUEST_METHOD']) == "POST" ){
$variable = htmlentities($_POST['variable']); // wrong
$variable = htmlentities( utf8_decode($_POST['variable']) ); // right
}
7> Ólafur Waage..:htmlentities()
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有