【问题标题】:mysql utf 8 and characters like ñ,á,é doesn´t insertmysql utf 8 和 ñ,á,é 等字符不会插入
【发布时间】:2013-08-04 21:22:28
【问题描述】:

嗨,我正在 mysql 中开发一个应用程序,我的变量值是这个

 character_set_client     | utf8
 character_set_connection | utf8
 character_set_database   | utf8
 character_set_filesystem | binary
 character_set_results    | utf8
 character_set_server     | utf8
 character_set_system     | utf8
 character_sets_dir       | C:\Program Files (x86)\Zend\MySQL55\share\charsets\
----------------------+-----------------
 Variable_name        | Value
----------------------+-----------------
 collation_connection | utf8_general_ci
 collation_database   | utf8_general_ci
 collation_server     | utf8_general_ci

*所以一切都在 utf 8 中,但是当我插入像 ñ,á,é 这样的字符时 *

mysql> insert into falla values(null,'ñ');

错误 1366 (HY000):不正确的字符串值:第 1 行的列“FALLA”的“\xA4”

我已将所有内容配置为 utf8、apache 默认字符集、php ini 和应用程序,现在我正在控制台中进行插入,但我有这些错误,将排序规则更改为西班牙语会有帮助吗?在 character_set_dir 中,我找不到任何名称为 utf8 的文件。

【问题讨论】:

  • FALLA 列的字符集怎么样
  • 当我显示完整的列时,我得到了 FALLA | varchar(50) | utf8_general_ci |我认为这不是问题,因为数据库是在 utf8 中创建的

标签: php mysql apache zend-framework utf-8


【解决方案1】:

'\xA4' 表明问题出在您的控制台编码...(在 UTF8 中“ñ”应该是 \xc3\xb1

编辑:

也许你可以试试

INSERT INTO falla VALUES(null, '\xc3\xb1');

看看效果如何 :)

【讨论】:

  • 不是 Windows 8 专家(或一般的 Windows,已经有好几年了),但看看这个:superuser.com/questions/269818/…
  • 你的自动运行文件不存在,所以我用值 chcp 65001 创建它,但现在每次我插入任何 utf 字符时,我的控制台都无法从键盘识别它,然后它重新启动你确定这是控制台编码问题?
  • 你完全有理由认为它是我的终端然后我切换到在 myPHPAdmin 中添加字符串以及那里的所有 ñ´s !!!
【解决方案2】:

将表、数据库、列的utf8字符集更改为utf8mb4并整理utf8mb4_unicode_ci

【讨论】:

    猜你喜欢
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2013-05-05
    • 2017-05-14
    相关资源
    最近更新 更多