J'ai changé le jeu de caractères des tableaux et de la colonne, je reçois le texte arabe comme ???? marques dans la base de données MYSQL
voici le design de la table
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;
Quand je lance à nouveau la requête de sélection, cela montre ???? comme texte?
Quelqu'un peut-il me dire où je fais mal?
Pour insérer manuellement des données arabes dans votre Phpmyadmin.
Vérifiez d'abord que votre nom de base de données, de table et de colonne est bien défini ou non. Si ceux-ci ne sont pas définis sur utf8, vous devez d'abord le définir, puis vous pouvez insérer des données arabes dans votre table db.
Pour la base de données:
SELECT default_character_set_name FROM information_schema.SCHEMATA S
WHERE schema_name = "schemaname";
Pour les tableaux:
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";
Pour les colonnes:
SELECT character_set_name FROM information_schema.`COLUMNS` C
WHERE table_schema = "schemaname"
AND table_name = "tablename"
AND column_name = "columnname";
Vous pouvez facilement définir utf8 sur vos tables si vous utilisez SQLYog.
Faites un clic droit sur db, le tableau, le nom de la colonne et cliquez sur alter option et définissez sur
Base de données Chartset = utf8 Base de données Collation = utf8_general_ci.
Tout simplement profiter ....
Pour lire, écrire et trier correctement le texte arabe dans la base de données mysql en utilisant php, assurez-vous que:
Jeu de caractères MySQL: Unicode UTF-8 (utf8)
Classement des connexions MySQL: utf8_general_ci
vos classements de base de données et de tables sont définis sur: utf8_general_ci
ou utf8_unicode_ci
Ensuite, ajoutez ce code dans votre script php lorsque vous vous connectez à db:
mysql_query("SET NAMES 'utf8'");
mysql_query('SET CHARACTER SET utf8');
Nous pouvons convertir la base de données ou la table db en support uft8 avec la requête ci-dessous:
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
J'espère que ça aide !
Lire la suite @
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
Assurez-vous que votre logiciel client utilise également UTF-8.
http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
Essayez ce code:
$conn = new mysqli($server,$username,$password,$dbname);
$conn->set_charset("UTF8");
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