口音AJAX编码问题

口音AJAX编码问题

本文介绍了口音AJAX编码问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

源文件有:

 标题(内容类型:text / html的;字符集= ISO8859-1');
 

来源AJAX(jQuery的)脚本是:

  $(文件)。就绪(函数(){
$ .ajaxSetup({
缓存:假的
});

$(#searchfield)。KEYUP(函数(){
$(#insert_search)
.load(AJAX / searchobjects.php',{search_word:$(#searchfield)V​​AL()},函数(){
});
    });
});
 

目标文件:

 标题(内容类型:text / html的;字符集= ISO8859-1');

回声$ _ POST ['search_word'];
 

数据发送:

 é
 

结果是:

  

所有文件:

 西文(ISO Latin 1)(使用的TextWrangler)
 

有趣的事情:我可以插入记录到MySQL蛮好用的口音

解决方案

这是因为要显示的E(0xc3,0xa9)UTF-8编码为Latin-1的。所以search_word是EN codeD为UTF-8,当它发布到PHP。

试试这个,

  $。ajaxSetup({
        scriptCharset:ISO-8859-1,
        缓存:假的
});
 

Source file has:

header('Content-type: text/html; charset=iso8859-1');

Source ajax (jQuery) script is:

$(document).ready(function() {
$.ajaxSetup({
	cache: false
});

$("#searchfield").keyup(function(){
	$("#insert_search")
		.load('ajax/searchobjects.php', {search_word:	$("#searchfield").val()}, function(){
		});
    });
});

Destination file:

header('Content-type: text/html; charset=iso8859-1');

echo $_POST['search_word'];

Data sent:

é

Result is:

é

All files:

Western (ISO Latin 1) (using TextWrangler)

Funny thing: I can insert records into MySQL just fine with accents.

解决方案

This is because you are displaying UTF-8 encoding of é (0xc3, 0xa9) as Latin-1. So the search_word was encoded as UTF-8 when it posted to PHP.

Try this,

$.ajaxSetup({
        scriptCharset: "iso-8859-1",
        cache: false
});

这篇关于口音AJAX编码问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-19 10:49