Quelqu'un pourrait-il connaître une méthode fiable (avec MySQL ou autre) pour sélectionner des lignes dans une base de données contenant des caractères japonais? J'ai beaucoup de lignes dans ma base de données, dont certaines n'ont que des caractères alphanumériques, dont certains ont des caractères japonais. P>
5 Réponses :
Comme Teneff a déclaré, utilisez simplement Lors de l'installation de MySQL, utilisez UTIF-8 comme caractères. Ensuite, choisissez Sélectionnez CODE>. P>
utf8_géneral_ci code> car une collation devrait faire le travail. P>
Il y a un nombre limité de caractères japonais. Vous pouvez rechercher ces utilisateurs utilisant
SELECT ...LIKE CONCAT('%',CHAR(0x30ab),'%')
Y a-t-il un moyen de sélectionner une ligne contenant un caractère japonais?
Vous pouvez combiner tous les caractères d'une requête (pourriez-vous être lent) code code> Sélectionnez ... comme '% カ%' ou comme '%% ア%' vaut la peine d'essayer est une expression régulière
code code > Sélectionnez ... Regexp '[カア]'
comme '% xxx%' code> et
regexp code> sont également lents, car ils n'utilisent pas d'index. Dans les deux cas, il s'agit d'une numérisation de table complète
Haut-parleur japonais ici. En japonais, alors qu'il n'y a que 71 caractères kana, il y a plus de 50 000 caractères kanji. Par conséquent, il n'est probablement pas possible d'écrire une instruction code> code> qui correspond à plus de 50 000 caractères japonais différents.
comme Frosty indiqué, utilisez simplement SELECT. P>
Recherchez les caractères japonais de valeur les plus bas et les plus élevés des cartes Unicode à http: //www.unicode .org / RoadMaps / BMP / et utilisez REGEXP. Il peut utiliser plusieurs régions de caractères différentes pour obtenir tout le jeu de caractères japonais. Tant que vous utilisez la collation UTF-8 Charset et UTF8_General_CI, vous devriez pouvoir utiliser un REGEXP '[A-GK-NT-Z]' lorsque AG représente une gamme de caractères Unicode à partir des graphiques, KN représente une autre plage, c. p>
En fait, je pense que vous voudrez la méthode de collation UTF8_BIN. Cela comparera les octets-sages. Dans UTF-8, cela signifiera qu'une valeur unicode plus élevée se comparera toujours plus tard. De cette façon, vous pouvez simplement rechercher les différentes gammes de caractères japonais dans les cartes Unicode et utiliser le premier et le dernier caractère de chaque gamme à l'intérieur [].
règles lorsque vous avez un problème avec des ensembles de caractères:
Lors de la création de la base de données, utilisez l'encodage UTF8: P>
$str = mb_convert_encoding($str, 'UTF-8', '<put your file encoding here'); $query = 'SELECT * FROM test WHERE name = "' . $str . '"';
Assurez-vous que tous les champs de texte (VARCHAR et TEXT) utilisent UTF-8: P>
header('Content-Type: text/html; charset=UTF-8');
Lorsque vous faites une connexion, faites-le avant de demander / mettre à jour la base de données: p>
SET NAMES utf8;
avec phpmyadmin - choisissez UTF-8 lorsque vous vous connectez. P> li>
Définir la page Web Encodage sur UTF-8 pour vous assurer que toutes les données post / get seront dans UTF-8 (ou vous devrez que la conversion est douloureuse ..). Code PHP (première ligne dans le fichier PHP ou au moins avant toute sortie): p>
CREATE TABLE _test.test ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE = MyISAM;
Assurez-vous que toutes vos questions sont écrites dans le codage UTF8. Si vous utilisez php: p> li> ol>
6.1. Si PHP prend en charge le code dans UTF-8 - écrivez simplement vos fichiers dans UTF-8. P>
6.2. Si PHP est compilé sans support UTF-8 - convertissez vos chaînes en UTF-8 comme ceci: p> qui devrait le faire fonctionner. P> P>
Suivre la réponse utile Nicksoft, je devais définir le codage sur la connexion de DB pour le faire fonctionner. P>
& Caractorcoding = utf8 p>
alors les noms de jeu UTF8; semblait être redondant p>
Un simple
SELECT CODE> Est-ce que le travail, pouvez-vous alors décrire votre tableau et ce que vous faites après le
SELECT CODE>
Y a-t-il un moyen de sélectionner une ligne contenant un caractère japonais?
Pouvez-vous nous donner la sortie de
show create table_name code>, où
name_name code> est le nom de la table en question? Sur la base de ce qui est là, vous pouvez ou ne pas être capable de le faire.
Haut-parleur japonais ici. En japonais, alors qu'il n'y a que 71 caractères kana, il y a plus de 50 000 caractères kanji. Par conséquent, il n'est probablement pas possible d'écrire une instruction code> code> qui correspond à plus de 50 000 caractères japonais différents.