› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
gengyanda
V2EX  ›  MySQL

PHP往MYSQL表里写入汉字时被诡异地明文储存为十进制utf8编码

  •  
  •   gengyanda · Jun 29, 2013 · 4826 views
    This topic created in 4847 days ago, the information mentioned may be changed or developed.
    最近在用php下的mysqli做一个简单的名单程序。

    建立了一个表,其中有个name列,类型为varchar(20)。结果三个汉字的人名。只有前两个字能正常显示,第三个字乱码。

    命令行下select,发现汉字全被用utf8十进制明文储存起来了。

    于是乎,“你好”被储存成了“你好”,共十六个字符。经查证,&#后面一串数字是utf8编码。这真是太奇葩了。但是在php里query后得到结果再echo,照样echo出“你好”。

    网上查了半天都没说这是啥情况。有知道怎么解决的吗?

    另外,试过了mysqli_set_charset('utf8'),没有效果。

    目前没有在别的电脑上测试,我的电脑是ubuntu,mysql 5.5.31-0ubuntu0.12.04.2
    Supplement 1  ·  Jun 30, 2013
    解决了,方案在4楼。
    7 replies  •  1970-01-01 08:00:00 +08:00
    gengyanda
        1
    gengyanda  
    OP
       Jun 29, 2013
    > 于是乎,“你好”被储存成了“你好”

    应该是被储存成了“&# 20320; &# 22909”,中间的空格请无视掉。因为刚刚直接打上去这串内容被v2ex直接转换成汉字了……
    explon
        2
    explon  
       Jun 29, 2013 via iPad
    表的 charset 设置错了吧
    gengyanda
        3
    gengyanda  
    OP
       Jun 29, 2013
    @explon 我总觉得这是php写入时的问题,因为读取的时候能正常读取。会不会是php先把汉字转换成了明文的utf8码,然后储存的?搞不清也不知道怎么办
    mopvhs
        4
    mopvhs  
       Jun 30, 2013 via Android
    header("Content-type: text/html; charset=utf-8");
    如果页面没有设置编码,也会出现这种情况。
    sNullp
        5
    sNullp  
       Jun 30, 2013
    mysql表的charset(不是通讯的charset)没设置好,使用了最原始的字节方式直接存储。
    gengyanda
        6
    gengyanda  
    OP
       Jun 30, 2013
    找到问题所在了。我是用表单提交的汉字。然而我发现表单传到服务器的时候,提交上来的就已经不是汉字而是utf8码了。所以我在储存的时候自然就把码储存进去了。这不是mysql的问题,是表单提交时编码的问题。
    gengyanda
        7
    gengyanda  
    OP
       Jun 30, 2013
    @mopvhs 加上了这个就好了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1014 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 23:54 · PVG 07:54 · LAX 16:54 · JFK 19:54
    ♥ Do have faith in what you're doing.