2014-01-24 2 views
0

Я пытаюсь сохранить строку «ಕನ್ನಡ» в базе данных mySQL. Он хранится как «à² • ನà³à²¨à²¡» Но он правильно отображается как «ಕನ್ನಡ» на html. Можно ли сохранить его как «ಕನ್ನಡ» вместо «à² • ನà³à²¨à²¡» в базе данных? Если да. как? Если вам нужна дополнительная информация о сортировке, пожалуйста, спросите.Символы, хранящиеся как странные символы в базе данных, но отображаются правильно в HTML

кодировок столбца, в котором хранится строка является «utf8_unicode_ci»

+0

Я пытался сохранить «ಕನ್ನಡ вручную Он получает хранится в виде ಕನ್ನಡ –

+0

что кодировка вашего столбца, которые хранят строку – leo108

+0

@ leo108 utf8_unicode_ci –

ответ

1

тот факт, что вы можете получить их и показать их правильно означает, что их правильно хранить.

Я бы предположил, что другой tool, который вы используете для проверки данных, неправильно отображает данные.

Возможно, это проблема в настройках соединения PhpMYAdmin. Он также должен быть явно установлен на UTF-8. См. Принятый ответ в How to display UTF-8 characters in phpMyAdmin?

+0

Я использую phpmyadmin для просмотра. –

+0

см. http://stackoverflow.com/questions/ 4777900/как к дисплей-UTF-8 символов-в-PHPMyAdmin –

0

Для того, чтобы установить набор символов и сортировку по умолчанию для 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) 
Смежные вопросы