【问题标题】:Characters stored as weird characters in database but are rendered properly in HTML在数据库中存储为奇怪字符但在 HTML 中正确呈现的字符
【发布时间】:2014-01-24 04:19:43
【问题描述】:

我正在尝试将字符串“ಕನ್ನಡ”存储到 mySQL 数据库中。 它被存储为“ಕನà³à²¨à²¡” 但它在html上正确呈现为“ಕನ್ನಡ”。 是否可以在数据库中将其存储为“ಕನ್ನಡ”而不是“ಕನà³à²¨à²¡”?如果是。如何?如果您需要有关排序规则、编码的更多信息,请询问。

存储字符串的列的字符集是'utf8_unicode_ci'

【问题讨论】:

  • 我尝试手动存储“ಕನ್ನಡ。它被存储为ಕನ್ನಡ。
  • 存储字符串的列的字符集是什么?
  • @leo108 utf8_unicode_ci.
  • 我认为你应该阅读kunststube.net/frontback
  • @PareshThummar 非常感谢。那篇文章不仅帮助我解决了这个问题,还帮助我解决了许多其他问题。

标签: php html mysql utf-8 collation


【解决方案1】:

您可以检索它们并正确显示它们的事实意味着它们被正确存储。

我猜您用来验证数据的另一个tool 显示的数据不正确。

这可能是 PhpMYAdmin 的连接设置有问题。它也必须显式设置为 UTF-8。查看How to display UTF-8 characters in phpMyAdmin?中接受的答案

【讨论】:

【解决方案2】:

对于如何将默认字符集和排序规则设置为 utf,在 my.cnf 中添加以下描述部分并重新启动 MySQL 服务。

[client]
default-character-set   = utf8

[mysql]
default-character-set   = utf8

[mysqld]
character-set-server    =       utf8
collation-server        =       utf8_general_ci
init-connect            =       'SET NAMES utf8'

请记住,已经存在的数据库和表不会更改字符集和排序规则,并且在现有数据库中创建的表将具有该数据库的字符集。

但新创建的数据库和表将具有默认字符集和 utf 排序规则。

例子:

mysql> create database demo1;
Query OK, 1 row affected (0.00 sec)

mysql> show create database demo1 \G
*************************** 1. row ***************************
       Database: demo1
Create Database: CREATE DATABASE `demo1` /*!40100 DEFAULT CHARACTER SET utf8 */
1 row in set (0.00 sec)

mysql> use demo1 
Database changed

mysql> create table test_char(data_to_insert CHAR(50)) ;
Query OK, 0 rows affected (0.26 sec)

mysql> show create table test_char\G
*************************** 1. row ***************************
       Table: test_char
Create Table: CREATE TABLE `test_char` (
  `data_to_insert` char(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> INSERT INTO test_char VALUES('ಕನ್ನಡ');
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM test_char;
+-----------------+
| data_to_insert  |
+-----------------+
| ಕನ್ನಡ            |
+-----------------+
1 row in set (0.00 sec)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-19
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多