Affichage caractères chinois

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par poupilou, 9 Mai 2016.

  1. poupilou
    poupilou WRInaute impliqué
    Inscrit:
    9 Février 2004
    Messages:
    935
    J'aime reçus:
    15
    Salut à tous,

    J'ai un vieux site en chinois que je voudrais relooker, j'utilise pour l'instant sur ce site une balise meta language <meta name="language" content="zh-CN" /> pour afficher correctement les caractères chinois.

    1) Lorsque je regarde le code source de http://www.baidu.com (le moteur de recherche chinois), il n'y a pas de balise language dans leur code html et pourtant les caractères chinois s'affichent parfaitement bien, comment cela est possible ?

    2) Lorsque je regarde le code source de mon site, les caractères chinois apparaissent sous cette forme "ÐÅ×꣺×êʯµÄÊÀ½ç£¬´Ó¿ó³¡µ½Ö鱦µê" alors que dans le code source du site de baidu les caractères chinois s'affichent normalement (sans qu'ils aient de balise language dans leur code source), comment cela est possible ?

    3) Quelles seraient les balises d'en-têtes et meta à mettre dans le code html pour avoir un site "propre" en chinois, pour l'instant j'ai cela :

    Code:
    <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/HTML; charset=gb2312" />
    <meta name="language" content="zh-CN" />
    <meta name="robots" content="index,follow" />
    </head>
    etc ......................
    
    Merci pour vos réponses.
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 170
    J'aime reçus:
    344
    Ce n'est absolument pas avec la meta language mais plutôt:
    PHP:
    <span class="syntaxdefault"></span><span class="syntaxkeyword"><</span><span class="syntaxdefault">meta&nbsp;http</span><span class="syntaxkeyword">-</span><span class="syntaxdefault">equiv</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"content-type"&nbsp;</span><span class="syntaxdefault">content</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"text/html;charset=utf-8"</span><span class="syntaxkeyword">>&nbsp;</span><span class="syntaxdefault"></span>
    En HTML5:
    PHP:
    <span class="syntaxdefault"></span><span class="syntaxkeyword"><</span><span class="syntaxdefault">meta&nbsp;charset</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"UTF-8"</span><span class="syntaxkeyword">>&nbsp;</span><span class="syntaxdefault"></span>
    + Les entêtes HTTP correspondants:
    Code:
    Content-Type: text/html; charset=utf-8
     
  3. poupilou
    poupilou WRInaute impliqué
    Inscrit:
    9 Février 2004
    Messages:
    935
    J'aime reçus:
    15
    Mersi Spout.

    1) A quoi sert la meta language ? Faut-il mettre encore mettre cette balise dans notre code html ?

    2) Comment un crawler peut-il connaitre/détecter la langue d'un site sans la meta language ou une autre indication sur la langue qui est utilisé sur le site qu'il crawl ?
     
  4. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 170
    J'aime reçus:
    344
  5. poupilou
    poupilou WRInaute impliqué
    Inscrit:
    9 Février 2004
    Messages:
    935
    J'aime reçus:
    15
    Ce que j'ai du mal à comprendre c'est lorsque je regarde avec mon bloc-notes le code source de https://www.google.com.hk les caractères chinois s'affichent correctement mais lorsque je regarde avec le même bloc-notes le code source de mon site chinois je vois ceci "ÐÅ×꣺×êʯµÄÊÀ½ç£¬´Ó¿ó³¡µ½Ö鱦µê" alors que les caractères chinois s'affichent bien pour mon site chinois dans tous les navigateurs internet :(

    Pour l'instant j'ai ce code sur mon site chinois :
    Code:
    <html>
    <head>
    <title>ÐÅ×꣺×êʯµÄÊÀ½ç£¬´Ó¿ó³¡µ½Ö鱦µê</title>
    <meta name="description" content="¼Ó¹¤×êʯÓëëÅ÷×êʯ£ºÌØÕ÷£¬Ã³Ò×£¬½¨Ò飬¼Û¸ñ£¬¼ø¶¨£¬½»Ò×Ëù£¬ÏîÄ¿£¬³ö²ú¹ú£¬µØÖÊ£¬¿ª²É£¬¿óʯµÄ´¦Àí£¬¹¤¾ß£¬É豸£¬ÍøÕ¾Ãû¼¡£">
    <meta name="keywords" content="×êʯ£¬½ð¸Õʯ£¬¼Ó¹¤£¬Ã«Å÷£¬Ô­Ê¯">
    <meta http-equiv="Content-Type" content="text/HTML; charset=gb2312">
    <meta name="language" content="zh-CN">
    <meta name="robots" content="index,follow">
    etc ....
    </head>
    
    Comment Google peut-il détecter la langue de mon site s'il regarde uniquement le code source (sans utiliser la balise meta language), il verra ceci "ÐÅ×꣺×êʯµÄÊÀ½ç£¬´Ó¿ó³¡µ½Ö鱦µê" ?

    J'ai testé en local avec la config ci-dessous mais les caractères chinois sur mon site ne s'affichent pas, je vois plein de carrés à la place des caractères chinois :
    Code:
    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    etc .....
    </head>
    
    Même si je rajoute la balise <html lang="zh-CN"> au code-ci-dessus ça ne marche pas mieux :(
     
  6. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 170
    J'aime reçus:
    344
    Tes fichiers HTML (PHP) doivent être enregistrés dans le même encodage, et s'il y a des headers HTTP qui définissent le charset, il doit être identique. Idem pour la DB, etc...

    Le html lang n'y changera rien du tout, tu as juste un problème d'encodage.
     
  7. poupilou
    poupilou WRInaute impliqué
    Inscrit:
    9 Février 2004
    Messages:
    935
    J'aime reçus:
    15
    Les fichiers php de mon site chinois et ma BD ne sont pas encodés en UTF-8, connais-tu un script ou un outil qui puisse convertir tous mes fichiers php en UTF-8 ? Je vais profiter de ce relookage pour tout convertir en UTF-8 (fichiers et BD).

    Comment connaitre l'encodage d'un fichier php ?
     
  8. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 170
    J'aime reçus:
    344
  9. poupilou
    poupilou WRInaute impliqué
    Inscrit:
    9 Février 2004
    Messages:
    935
    J'aime reçus:
    15
    Je ne connaissais pas Notepad++, il est pas mal ce logiciel pour convertir les fichiers en UTF-8 (sans BOM), je vais pouvoir me dépatouiller avec lui.

    Merci pour ton aide précieuse :D
     
  10. poupilou
    poupilou WRInaute impliqué
    Inscrit:
    9 Février 2004
    Messages:
    935
    J'aime reçus:
    15
    J'ai converti mes anciens fichiers php en UTF-8 ainsi que l'un de mes tables MySQL, les caractères chinois sont bien visibles dans ma tables MySQL mais lorsque j'effectue une requête MySQL les caractères chinois ne s'affichent pas correctement et j'ai des "?????" à la place. Ou est le problème ?

    Voici le code source de ma page essais.php :
    Code:
    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <meta name="robots" content="index,follow">
    <title>?????: ???????</title>
    <meta name="description" content="">
    <meta name="keywords" content="">
    </head>
    <body>
    ?????: ???????
    <br><br>
    </body>
    </html>
    
    Et ma table MySQL :
    Code:
    CREATE TABLE IF NOT EXISTS `url_cn` (
      `page` varchar(250) NOT NULL DEFAULT '',
      `nom_cn` varchar(250) NOT NULL DEFAULT '',
      `url_cn` varchar(250) NOT NULL DEFAULT '',
      `titre_cn` varchar(250) NOT NULL DEFAULT '',
      `description_cn` varchar(250) NOT NULL DEFAULT '',
      `mot_cle_cn` longtext NOT NULL,
      `hit_cn` int(11) NOT NULL DEFAULT '0',
      `groupe` int(2) NOT NULL DEFAULT '0',
      `tri` int(3) DEFAULT NULL,
      `sitemap` int(1) NOT NULL DEFAULT '1',
      PRIMARY KEY (`page`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    
     
  11. poupilou
    poupilou WRInaute impliqué
    Inscrit:
    9 Février 2004
    Messages:
    935
    J'aime reçus:
    15
    J'ai trouvé :)
    En faite, il faut spécifier le "set names" dans la requête MySQL, comme cela :
    Code:
    mysql_query("set names 'utf8'");
    
    Etant donné que toute ma base de donnée est en latin1_swedish_ci et qu'elle est utilisée par plusieurs de mes sites, je ne me vois pas convertir toutes les tables mysql ainsi que toutes les pages php (de tous mes sites) en UTF-8, cela demanderait un trop gros travail :?

    Je vais donc garder mes tables MySQL en latin1_swedish_ci, ne pas convertir en UTF-8 les pages php de mon site chinois et adapter l'en-têtes et le charset de mon site chinois.

    Une question : est-il gênant pour le référencement de mon site chinois que l'on trouve dans le code html cela "¼Ó¹¤×êʯµÄÊÀ½ç" au lieu de cela "加工钻石的世界" ?
     
  12. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 170
    J'aime reçus:
    344
    Envoie le charset dans les headers HTTP aussi, ça devrait corriger le problème.

    NB: mysql_query() est obsolète depuis PHP 5.5 et complètement supprimé en PHP7, il faut commencer à envisager de changer.
     
  13. poupilou
    poupilou WRInaute impliqué
    Inscrit:
    9 Février 2004
    Messages:
    935
    J'aime reçus:
    15
    Qu'est-ce que tu entends par envoyer le charset dans les headers HTTP aussi ? :(
    J'ai toujours un train de retard, je suis encore en php 5.3 en local sur mon ordi... et le php7 est déjà fonctionnel :?

    J'ai raté un train ou il n'y a pas eu de php6 ?
     
  14. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 825
    J'aime reçus:
    205
  15. gotgot
    gotgot WRInaute discret
    Inscrit:
    1 Octobre 2014
    Messages:
    186
    J'aime reçus:
    0
    si je dis pas de bêtises il me semble que t'as une solution pour le définir lors de la connexion à ta base de données en php:
    Code:
    $ConnectSQL = mysql_connect($config['Host'], $config['User'], $config['Pass']) or die ("Erreur lors de la connection a la base de données");
    mysql_set_charset('utf8',$ConnectSQL); 
    ça existe aussi pour mysqli il me semble
     
  16. poupilou
    poupilou WRInaute impliqué
    Inscrit:
    9 Février 2004
    Messages:
    935
    J'aime reçus:
    15
    D'après ce qu'ils disent sur le lien de Marie-Aude :
    On comprend mieux pourquoi il n'y aura pas de php6 :wink:

    Merci gotgot pour ton bout de code.
     
  17. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 170
    J'aime reçus:
    344
  18. poupilou
    poupilou WRInaute impliqué
    Inscrit:
    9 Février 2004
    Messages:
    935
    J'aime reçus:
    15
    :) :D :lol: :mrgreen:

    Afin d'être mieux positionné sur le moteur de recherche chinois Baidu il faut que notre site web soit hébergé sur une adresse IP chinoise. La solution consiste à héberger notre site sur un serveur localisé en Chine afin d'avoir cette fameuse IP chinoise mais cela engendre des coûts supplémentaire de frais d'hébergement et il faut migrer tous les fichiers et la BD sur ce serveur chinois :(

    N'y a-t-il pas une autre solution pour obtenir une adresse IP chinoise pour son site web sans tout migrer en Chine ?
     
  19. gotgot
    gotgot WRInaute discret
    Inscrit:
    1 Octobre 2014
    Messages:
    186
    J'aime reçus:
    0
  20. poupilou
    poupilou WRInaute impliqué
    Inscrit:
    9 Février 2004
    Messages:
    935
    J'aime reçus:
    15
    J'héberge mes sites chez OVH mais ils ne proposent pas d'IP chinoises en géolocalisation.

    S'il faut trouver un autre hébergeur alors autant trouver un hébergeur en Chine mais j'aurais préféré pouvoir trouver une autre solution technique en laissant l'hébergement de mon site chinois chez OVH... voyez-vous une solution ?
     
Chargement...
Similar Threads - Affichage caractères chinois Forum Date
Affichages de caractères étranges sous Opera ... Développement d'un site Web ou d'une appli mobile 5 Août 2006
correction affichage de caracteres Développement d'un site Web ou d'une appli mobile 1 Août 2006
affichage caracteres accentués Débuter en référencement 3 Janvier 2006
WordPress Problème affichage style avec Elementor (titre, bordures, separateur) Administration d'un site Web Aujourd'hui à 12:12
Le simple affichage de ma page déclenche les événements onClick... Merci Google Analytics 17 Mai 2022
Affichage des données démographiques Google Analytics 10 Mai 2022
Problème d'affichage des campagnes Google Ads dans un tableau de bord Data Studio AdWords 26 Avril 2022
Problème de vitesse d'affichage des pages sur Analytics Google Analytics 26 Avril 2022
Problème affichage Meta Title, Desc ... Débuter en référencement 20 Janvier 2022
Google chrome : affichage incomplet Google : l'entreprise, les sites web, les services 18 Janvier 2022
redirection permanente et affichage URL Rewriting et .htaccess 3 Janvier 2022
Absence d'affichage de données dans tableau de bord Analytics Google Analytics 25 Juin 2021
Virtuemart : affichage des poids et dimensions e-commerce 8 Février 2021
données "portée" et "affichage" des vidéos sur Hootsuite Facebook 15 Décembre 2020
Référencement url sur Google - Affichage positions sur mobile différents d'un OS à un autre ? Référencement Google 7 Août 2020
En test : affichage des informations de licence dans Google Images YouTube, Google Images et Google Maps 28 Février 2020
Affichage chiffre d'affaires et taux de conversion zéro Google Analytics 26 Février 2020
WordPress Problème affichage accent sur Wordpress Développement d'un site Web ou d'une appli mobile 17 Février 2020
Position zéro et Featured Snippet : modification affichage Référencement Google 23 Janvier 2020
Astuce pour continuer l'affichage des étoiles dans les SERP de GOOGLE: balises de données structurée Référencement Google 6 Janvier 2020