【问题标题】:special characters wont be inserted into mysql table the right way特殊字符不会以正确的方式插入到 mysql 表中
【发布时间】:2010-12-16 14:53:55
【问题描述】:

我有一个 mysql 数据库,我试图通过表单中的 php 文件向它提交值。

如果我使用瑞典语 åäö 字母等特殊字符手动将值插入到表“myTable”中,则可以正常工作。

但是当我在页面上提交表单后尝试使用“INSERT INTO”向表中插入值时,所有特殊字符都变得很奇怪......就像符号......

所有排序规则都设置为 utf-8-swedish!

注意1:如果我从表单提交中回显值“POSTED”,则特殊字符会以探测方式显示。所以它不是 php 文件或表单本身。

注意2:所有文档都设置为utf-8

谢谢

【问题讨论】:

    标签: php sql mysql html


    【解决方案1】:

    使用mysql_set_charset 确保 MySQL 连接字符集是 UTF-8。

    【讨论】:

      【解决方案2】:

      HTML 文档类型是否也设置为 UTF-8?

      另外,您检查过 MySQL 连接字符集吗? (您可以使用“mysql_client_encoding”进行验证,并使用“mysql_set_charset”进行设置。)

      无论如何,当您从数据库中提取数据并回显时,它是否正确显示?

      【讨论】:

        【解决方案3】:
        mysql_query("SET NAMES 'utf8'") or die(mysql_error()); 
        mysql_query("SET CHARACTER SET 'utf8'") or die(mysql_error());
        

        已经解决了!

        【讨论】:

        • 你真的需要 SET NAMES 吗?此外,以编程方式设置字符集(根据我的回答)而不是通过您必须向服务器发送完整查询等的查询不是更好吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-16
        • 2012-04-25
        • 2014-11-17
        • 1970-01-01
        • 2012-10-17
        • 1970-01-01
        • 2012-04-24
        相关资源
        最近更新 更多