UTF-8 et le site Web multilingue

voix
0

J'ai lu dans UTF-8, mais je besoin de quelques conseils.

Exemple. J'ai une forme, où un texte d'entrée utilisateur peut. Cela peut être l'anglais, mais aussi japonais. La page suivante, affiche le texte et les stocke dans une base de données.

Tout est (ou devrait être) défini comme UTF-8. Il est tout ce que nous allons bien, jusqu'à ce travail en ajoutant des lettres arabes ou japonais . Ces lettres deviennent (si je me trompe pas) forme Unicode %u06458.

Maintenant, la chose est, je sais comment ces lettres sortie:

$x= preg_replace('/%u([0-9A-F]+)/', '&#x$1;', $x);  

Cela rendra le code UTF-8 et la lettre de sortie de Japenese très bien.

Mais ma question est, je veux vérifier la longueur et le stocker dans mon DB. Mais une lettre japonaise est déjà 8 bits par rapport à une lettre normale qui est de 1 bit.

  1. Comment dois - je vérifier la longueur « texte »? Comme AA = 2et キキ = 2.
  2. Est-ce que ces lettres soient stockées toujours en tant que 8 bits %u06458dans mon datbase? Et si j'ai un texte qui a 2000 mots en japonais (2000 * 8bits)? C'est 8 fois plus qu'un texte en anglais.
  3. Tous les conseils généraux?
Créé 06/06/2013 à 11:31
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
2

PHP a des fonctions qui traitent spécifiquement des chaînes multi-octets (c.-à-Unicode).

Vérifiez l' aide de chaîne multi - octets et les fonctions de chaîne multi - octets dans le manuel PHP.

Quant à vos questions:

  1. Vous pouvez vérifier la longueur du texte à l' aide mb_strlen
  2. Vous pouvez stocker les caractères multi-octets directement dans la base de données, sans les transcoder. Chaque caractère multi-octets occupe 2 octets
  3. Utilisez les fonctions multi-octets PHP pour gérer ces chaînes :)
Créé 06/06/2013 à 11:37
source utilisateur

voix
0

Toutes les mb_...fonctions sont des caractères multi-octets.

http://php.net/manual/en/book.mbstring.php

Il y a un mb_strlenlà - dedans.

Créé 06/06/2013 à 11:36
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more