Сохранить данные на арабском языке в базе данных MySQL - PullRequest
28 голосов
/ 28 июля 2011

Я изменил кодировку таблиц и столбца, я получил арабский текст как ???? отметки в базе данных MYSQL

вот дизайн стола

  CREATE DATABASE mydb
  DEFAULT CHARACTER SET utf8
  DEFAULT COLLATE utf8_general_ci;


   CREATE TABLE `categories` (                        
   `category_id` tinyint(2) NOT NULL auto_increment,           
   `category_name` varchar(50)character set utf8 NOT NULL ,  
   PRIMARY KEY  (`category_id`) 


   insert into `mydb`.`categories` 
    (`category_id`, `category_name`)
    values (1,'کتگوری');
   commit;

Когда я снова запускаю запрос выбора, он показывает ???? как текст?

Может кто-нибудь сказать мне, где я делаю неправильно?

Ответы [ 7 ]

28 голосов
/ 25 октября 2013

Чтобы вставить арабские данные вручную в ваш Phpmyadmin.

Сначала вы проверяете, установлена ​​ли ваша база данных, имя таблицы и столбца utf8 или нет. Если они не установлены в utf8, то сначала вы устанавливаете его, затем вы можете вставить арабские данные в вашу таблицу db.

ВЫ МОЖЕТЕ ПРОВЕРИТЬ КАЖДУЮ ИЗ ЭТИХ, ПОСМОТРЕВ НИЖЕ ПРИМЕР.

Для базы данных:

SELECT default_character_set_name FROM information_schema.SCHEMATA S
WHERE schema_name = "schemaname";

Для таблиц:

SELECT CCSA.character_set_name FROM information_schema.`TABLES` T,
       information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
WHERE CCSA.collation_name = T.table_collation
  AND T.table_schema = "schemaname"
  AND T.table_name = "tablename";

Для столбцов:

SELECT character_set_name FROM information_schema.`COLUMNS` C
WHERE table_schema = "schemaname"
  AND table_name = "tablename"
  AND column_name = "columnname";

Вы можете легко установить utf8 для ваших таблиц, если вы используете SQLYog.

Просто щелкните правой кнопкой мыши по БД, таблице, имени столбца и выберите опцию alter и установите значение

База данных Chartset = utf8 Сравнение базы данных = utf8_general_ci.

Просто наслаждайтесь ....

20 голосов
/ 03 августа 2012

Чтобы правильно читать, писать и сортировать арабский текст в базе данных mysql с помощью php, убедитесь, что:

  1. MySQL charset: UTF-8 Unicode (utf8)

  2. Параметры сортировки соединения MySQL: utf8_general_ci

  3. параметры сортировки базы данных и таблицы установлены на: utf8_general_ci или utf8_unicode_ci

Затем добавьте этот код в скрипт php при подключении к db:

mysql_query("SET NAMES 'utf8'");
mysql_query('SET CHARACTER SET utf8');

Для получения более подробной информации

10 голосов
/ 16 сентября 2013

Мы можем преобразовать базу данных или таблицу базы данных в uft8, поддерживающую следующий запрос:

ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;

ALTER TABLE tablename CHARACTER SET utf8 COLLATE utf8_general_ci;

ALTER TABLE columnname DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

Надеюсь, это поможет!

Подробнее @

https://kb.mediatemple.net/questions/138/Default+MySQL+character+set+and+collation#gs

http://hollyslog.com/technology/how-to-store-arabic-or-hebrew-characters-mysql-database

4 голосов
/ 21 ноября 2016

Измените типы сопоставлений таблиц базы данных на utf8_general_ci, а также сопоставления полей таблиц измените на utf8_general_ci.

enter image description here

3 голосов
/ 28 июля 2011

Убедитесь, что ваше клиентское программное обеспечение также использует UTF-8.

http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html

0 голосов
/ 24 июня 2019
CREATE TABLE mydb.categories         
(category_id tinyint(2) NOT NULL AUTO_INCREMENT
,category_name MEDIUMTEXT NOT NULL
,PRIMARY KEY (category_id)) DEFAULT CHARACTER SET utf8
0 голосов
/ 27 апреля 2019

Попробуйте этот код:

$conn = new mysqli($server,$username,$password,$dbname);
$conn->set_charset("UTF8");
...