繁体   English   中英

西班牙语字符编码不正确

[英]Spanish Characters Not Encoding Correctly

我正在菲律宾的一个项目中工作,其中许多人的名字中都有特殊的拉丁波浪号字符。

我在latin1中使用latin1_swedish_ci排序规则建立了一个包含所有表的数据库。

+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | latin1                         |
| character_set_connection | latin1                         |
| character_set_database   | latin1                         |
| character_set_filesystem | binary                         |
| character_set_results    | latin1                         |
| character_set_server     | latin1                         |
| character_set_system     | utf8                           |
| character_sets_dir       | C:\xampp\mysql\share\charsets\ |
+--------------------------+--------------------------------+

我的网页标题将iso-8859-1声明为字符集。

例如,当我通过Web表单提交包含波浪号字符的员工姓名时,它在我的表格中显示为“ Marie Caon”,并且当我查看该员工的记录时,在我的网页上也显示相同的名字。

如果我将网页编码更改为utf-8,它将正确显示为“ MarieCañon”。 因此,我假设我以某种方式在latin1表中编码UTF-8。 但是我对可能发生的地方感到困惑。

据我所知,PDO不处理编码。 我的网页被声明为iso-8859-1,因此我认为PHP不会引起问题。 我的character_set_connection在MySQL中是latin1。

这可能在哪里发生?

附加信息:Ubuntu 10.04.2 LTS MySQL 5.1.41-3ubuntu12.9-log PHP5:5.3.2 Apache2:2.2.14

  1. 将您的MySQL切换到utf-8。
  2. 安装mbstring PHP扩展并进行配置。
  3. 创建您的PHP标头: header('Content-type: text/html; charset=UTF-8');
  4. HTMLheaders <meta http-equiv="Content-type" value="text/html; charset=UTF-8" />
  5. 检查这张备忘单

这为我工作:

$ title = mb_convert_encoding($ article ['title'],“ UTF-8”,“ iso-8859-1”);

用于西班牙口音

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM