我遇到了字符集问题,我正在疯狂地寻找解决方案。这就是我所拥有的:
- 我有一个 MySQL 数据库,其中 'latin1_spanish_ci' 作为数据库、表和每个字段的排序规则。
- 标题为 '<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">' 的 html 文件有一个表单。当按下按钮时,将调用一个 Ajax,它将一个 POST 请求发送到 PHP。
- 调用 'header('Content-type: text/html; charset=iso-8859-1');' 的 PHP 在顶部。这个 PHP 对数据库进行查询以获取数据列表。
AJAX 调用如下:
$.ajax({ url:"llistat.php", type: "POST", data: { 扇区: $("#sector").val(), cp : $("#cp").val(),省:$("#province").val(),免费:$("#free").val()},成功:函数(数据){ $("#results").html(""); $("#results").append(data); }, contentType: "application/x-www-form-urlencoded; charset=iso-8859-1" });
问题...
- 如果我在 PHP 中保留字符集标头,则字符会从数据库中正确获取,但通过 AJAX 调用发送的“异端”字符(重音符号、“ñ”、...)无法正确获取。
- 如果我删除字符集标题,我会遇到同样的问题,但反过来。调用中的字符被正确获取,但不是来自数据库的字符。
- 最后,如果我不通过 Ajax 调用进行调用,而是直接提交表单,则一切正常。字符已正确发送,数据库中的信息也已正确发送。
所有这些过程有什么问题?我猜(根据最后一点)通过 AJAX 调用或通过表单中的提交进行调用是有区别的。但是,这有什么区别?我究竟做错了什么?
谢谢。