2015-07-16 2 views
2

Je suis en train de stocker un texte arabe à la table, je cherchais beaucoup, mais je ne l'ai pas trouvé une solution qui a fonctionné pour moi, donc ce que je suis:Insérez un texte arabe MySQL

$en = "OK"; 
$ar = "حسناً"; 
$link->query("INSERT INTO words (en,ar) VALUES ($en,$ar)"); 

Le problème est quand je l'insère, le texte arabe ressemble à حسناً, le classement de ma table et MySQL sont utf8_general_ci, est donc ma base de données, j'ai aussi mysql_query("SET NAMES 'utf8'"); mysql_query('SET CHARACTER SET utf8');, mais cela ne fonctionne pas.

+0

duplication possible de [Sauvegarder les données en arabe dans la base de données MySQL] (http://stackoverflow.com/questions/6859018/save-data-in-arabic-in-mysql-database) –

+0

@MariM Toutes les réponses n'y ont pas ' t travailler pour moi – PepsiGam3r

+0

http://stackoverflow.com/questions/279170/utf-8-all-the-way-through –

Répondre

5

J'ai récemment eu les mêmes problèmes moi-même.

Voici quelques conseils:

  • Tous les attributs doivent être définis pour UT8 (la collation est pas le même que charset)
  • Enregistrez le document au format UTF-8 (Si vous utilisez Notepad ++, il est Format -> Convertir en UFT-8)
  • l'en-tête dans les deux PHP et HTML doit être défini sur UTF-8 (HTML: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> et PHP: header('Content-Type: text/html; charset=utf-8');
  • Lors de la connexion au databse, réglez le charset ti UTF-8 là aussi, comme ceci: $link->set_charset("utf8"); (directement après connexion)
  • Assurez-vous également que votre base de données et les tables sont en UTF-8, vous pouvez le faire comme ceci:

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci; ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Rappelez-vous que tout doit être mis à UFT-8 charcode, ou bien il va insérer des trucs comme "Øس٠† ا٠<". J'espère que cela a aidé!

+1

'header ('Content-Type: text/html; jeu de caractères = utf-8');' a résolu mon problème, merci. – PepsiGam3r

+0

Heureux de vous aider! N'oubliez pas de marquer la réponse comme correcte si elle a aidé :) – Qirel

+0

Bien sûr, attendez que le compte se termine. – PepsiGam3r

4

La première chose à faire est la base de données, la table et la colonne. Voir si utf8 est défini: utf8_general_ci ou utf8_unicode_ci

En outre, la collation de connexion: utf8_general_ci

En PHP, après je me connecte avec mysqli, je lance ceci:

$conn->query("SET NAMES 'utf8'"); 

Et la sortie de page Web toujours coincé dans:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
+0

Ils sont tous 'utf8_general_ci', je ne sais vraiment pas quel est le problème – PepsiGam3r

+1

' header ('Content-Type: text/html; jeu de caractères = utf-8'); 'a résolu mon problème, merci quand même. – PepsiGam3r