Кодирането на моя уебсайт е ISO-8859-1. ISO-8859-1 се определя като набор от символи в уеб страниците и резултатите от търсенето с Google винаги са изглеждали добре.

От няколко седмици обаче специалните знаци (é, à, è, â и др.) Се заменят с � в резултатите от търсенето с Google, както за заглавия на страници, така и за описания на страници.

Кодировката е дефинирана на всяка страница: И уебсайтът изглежда добре с всички уеб браузъри, няма грешки в кодирането.

Досега виждам, че френските диакритични знаци не са част от ISO-8859-1 (освен апострофа). Версията на кеша на Google не съдържа тези знаци.

Виждам две решения:

  1. Кодирайте цялото съдържание като UTF-8 (бих бил по начина, по който предпочитам)
  2. Кодирайте диакритичните знаци като HTML обекти. Пример: séries става séries. Това може да се направи в редактор като Notepad ++ и HTML Tag плъгин. Това е куп ръчна работа - не бих го направил.

BTW. имате страница https://www.hypnoweb.net/www/, която отразява началната страница - не е добре.

  • 2 френски диакритични знака са част от ISO-8859-1. Не трябва да има нужда да се използват обекти за тях за този набор от знаци. Единствените френски символи, които не са обхванати от ISO-8859-1, са Œ, œ и много редки Ÿ. Също така липсват често използваните знаци са знакът евро (€), елипси (...), неразбиващо се интервал () и различни стрелки (→). ISO-8859-15 би бил по-добър избор за френски от ISO-8859-1, тъй като включва липсващите френски символи и символа за евро. UTF-8 би бил още по-добър.
  • Добър момент, знаците не присъстват във версията на кеша на Google. Тъй като не мога лесно да премина към UTF-8, ще актуализирам своя PHP скрипт, за да кодирам специални символи в HTML обекти. Ще започна с заглавията на страниците, да видим дали ще помогне!
  • Получи се, просто трябваше да кодирам като HTML обекти! Благодаря!

Google се обърква, защото докато страницата е ISO-8859-1, част от съдържанието се зарежда в страницата в UTF-8. Това кара Googlebot да прекодира съдържанието на страницата със съдържание като UTF-8, за да може да го обработи. По време на този процес нещо се обърква и героите се изкривяват.

Например използвате JavaScript библиотека за съгласие за бисквитки. Той зарежда UTF-8 кодиран текст и го записва на страницата.

В идеалния случай Google би могъл да се справи с тази ситуация, без да разваля героите. Свързах се с Google за това и в техния край е подадена грешка. Въпреки това, някои други сайтове, които се прекодират, работят. Каквото и да се случва с вашия сайт, не засяга много други сайтове, така че може да е по-нисък приоритет за Google.

Като заобиколно решение можете да се уверите, че вашата страница и JavaScript използват един и същ набор от символи. Тъй като нямате контрол върху библиотеки на трети страни, които използват UTF-8 и не могат да ги конвертират в ISO-8859-1, ще трябва да конвертирате сайта си в UTF-8.

Като цяло днес няма основателна причина да се използва ISO-8859-1. Този набор от символи поддържа само 256 знака. UTF-8 не прави размера на страницата значително по-голям и поддържа всички символи на Unicode:

  • Допълнителните френски символи Œ, œ и Ÿ
  • Знакът евро (€), елипси (...), неразбиващо се пространство ()
  • Забавни герои като стрелки и емотикони

Използването на UTF-8 ви позволява да поддържате генерирано от потребителите съдържание от всеки език. Най-малкото позволява на имената на потребителите да се пишат правилно, независимо от техния национален произход.

  • Благодаря много за вашия подробен отговор, да се надяваме, че някой ден Google ще го поправи ... Бих искал да мигрирам към UTF-8 (и към поддържана версия на PHP), но кодовата база е объркана. Ако някой ме прочете и търси ново предизвикателство, уведомете ме ;-)
  • 1 Чудя се, защо този въпрос е абсолютно рядко срещан. В немскоговорящата мрежа има много уебсайтове, които все още използват ISO-8859-1 - и от една година е задължително да включите банери за бисквитки, cookieconsent от вашия анализ е доста популярно решение за банер за бисквитки. С тази настройка трябва да има около всеки десети уебсайт в немскоговоряща мрежа, объркан от този вид ...
  • 1 Мисля, че има нещо повече от просто скрипт за съгласие за бисквитки. Джон Мюлер каза, че много други сайтове работят добре. Той каза, че това по някакъв начин е свързано с вмъкването на UTF-8 в ISO-8859-1 и "прекодирането", което трябва да се случи, за да се справи с това. Нямам повече информация или добро предложение как да диагностицирам проблема по-нататък.
  • Всъщност проблемът се появи няколко дни след като смених PHP редактора си от phpEd на PhpStorm. Първоначално мислех, че проблемът може да идва от файловете, кодиращи в PhpStorm: Използвах ISO-8859-1, а в phpEd използвах windows-1252. Опитах се да премина към windows-1252 в PhpStorm, но не реши проблема. Възможно ли е един от моите PHP файлове да е кодиран погрешно, например в UTF-8. Има ли начин да се открие това?
  • 1 Може да съм открил проблема, имам PHP файл с charset = unknown-8bit, включен във всичките ми страници. Ще се опитам да намеря как да поправя това ...

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?