<
  • Главная
Статьи

rôzne kódovanie php

  1. Autori
  2. x64 (aka andi)

začínajúci skript spisovatelia sa nestarajú o také veci ako kódovanie

začínajúci skript spisovatelia sa nestarajú o také veci ako kódovanie. Preto na stránkach môžete niekedy nájsť hrozný neporiadok, keď sa údaje z databázy získajú v jednom kódovaní, stránka sa vytvorí v inom a server dostane tretiu. v dôsledku toho, ak stránku možno dešifrovať, potom aspoň 2 krát. Prečo sa tak stalo a ako ho prekonať?

v ruskom segmente najčastejšie nájdete tzv. kódovanie okien. zavolajte to inak: windows-1251, cp1251 alebo dokonca ansi. ďalšie je utf-8. Môžete tiež nájsť názov unicode, ale to nie je úplne správne, pretože Unicode je všeobecný názov pre celú skupinu (utf-8, utf-16, utf-32). a veľmi populárna rarita je koi8-r alebo jednoducho koi-8 - kedysi populárne kódovanie Linuxu. Samozrejme, v ruskom segmente je možné stretnúť sa s niečím iným, ale je to skôr „zhovievavosť“ autora.

Hlavný rozdiel medzi utf-8 a ostatnými (primárne windows-1251 a koi8-r) je posledný jednobajt a maximálny počet znakov, ktoré možno pomocou týchto kódovaní reprezentovať, je obmedzený na 256. nemusí stačiť. a pre html bolo nájdené riešenie - použitie tzv. mnemotechniky. napríklad:

© - & copy;

Okrem toho, že každý takýto znak je opísaný skupinou znakov, kód sa stáva nečitateľným a práca s textom sa stáva komplikovanejšou. toto je miesto, kde multibyte utf-8 príde na záchranu. je veľmi výhodné používať písmená rôznych abeced a rôznych symbolov v jednom texte.

Preto je najpohodlnejší súbor počiatočných podmienok nasledovný: kódovanie databázy, php skripty a html stránky / js skripty by mali byť rovnaké. Samozrejme, môžete použiť aj iné, ale v tomto prípade hrozí riziko zmätku. Nezáleží na tom, ktorá kódová stránka sa používa. ak je stránka iba pre rusky hovoriaceho publika, Windows-1251 bude dosť dosť. inak by utf-8 bola logická voľba. prvá možnosť je viac či menej jasná. viacbajtové kódovanie bude vyžadovať určité gestá.

Pri práci s utf-8 nebude fungovať štandardný poznámkový blok poznámok ! Faktom je, že tento editor pri ukladaní súboru v tomto kódovaní pridáva na začiatok podpis - 3 znaky, tzv. Bom (značku poradia bajtov), ​​ktoré možno použiť na určenie kódovania pri otváraní súboru. je lepšie zvoliť iného editora: Notepad2 alebo poznámkový blok ++ , v nastaveniach musíte zvoliť uloženie bez podpisu.

Ďalším dôležitým krokom je práca s databázou. Je veľmi žiaduce, aby kódovanie základného / tabuľkového / textového poľa zodpovedalo kódovaniu skriptu (mohlo by to byť cp1251 alebo utf-8 alebo niečo iné). ak sa údaje z databázy získajú vo forme "zyuk", s najväčšou pravdepodobnosťou sa kódovanie spojenia líši od údajov uložených v databáze. Nasledujúci dotaz pomôže prekonať situáciu (okamžite po pripojení k databáze):

ak stránka používa Windows-1251, mali by ste ju špecifikovať - ​​cp1251.

vo všeobecnosti nie je nič ťažké. štandardné funkcie PHP nie sú určené na prácu s viacbytovými reťazcami. ale existujú štandardné knižnice, ktoré pomôžu napraviť situáciu: iconv a mbstring , pre regulárne výrazy je tiež potrebný prepínač, ktorý je aktivovaný modifikátorom u .

No, dáta z databázy sú získané, skripty sú napísané podľa všetkých pravidiel. Zostáva poslať správny názov a zobraziť kód stránky v prehliadači používateľa. posielame nadpis tak:

hlavička ('Content-Type: text / html; charset = utf-8');

ak sa použije jednobajtové kódovanie, hodnota znakovej sady bude odlišná - windows-1251 . Potom by nemali zostať problémy.

Niektoré najjednoduchšie príklady práce s utf-8 v php:

príklad 1: iconv, počet znakov na riadok

$ s = 'reťazec'; # string v utf-8 $ cnt1 = strlen ($ s); # bude obsahovať hodnotu $ 12 cnt2 = iconv_strlen ($ s, 'UTF-8'); # správna hodnota, 6

príklad 2: mbstring, počet znakov v reťazci

$ s = 'reťazec'; # string v utf-8 $ cnt1 = strlen ($ s); # bude obsahovať hodnotu $ 12 cnt2 = mb_strlen ($ s, 'UTF-8'); # správna hodnota, 6

príklad 3: regulárne výrazy, vyhľadávanie a nahrádzanie

$ s = 'String'; # riadok v utf-8 $ s = preg_replace ('/ p / i', 'd', $ s); # nahradenie sa nestane $ s = preg_replace ('/ p / iu', 'd', $ s); # výsledok slovo dock

modifikátor i predpisuje vyhľadávanie nerozlišujúce veľké a malé písmená a modifikátor u hovorí motoru s regulárnym výrazom, aby pracoval s reťazcami utf-8.

ak niekto povie, že php nemôže pracovať s utf-8, bude to nesprávne. Už niekoľko rokov robím všetky svoje projekty v tomto kódovaní a vôbec neboli žiadne problémy. Vyhľadávače samy o sebe už dávno používajú toto nádherné kódovanie.

Autori

offline 11 hodín

x64 (aka andi)

Komentáre: 2846 Publikácie: 395 Registrácia: 02-04-2009

Prečo sa tak stalo a ako ho prekonať?


Новости
    Без плагина
    На сайте WordPress имеется файл, именуемый как .htaccess. Многие пользователи не предают ему особого внимания и не используют все его возможности. На самом деле файл .htaccess – это дополнительные конфигурации

    Плагин подписки wordpress
    Очень трудно найти один плагин подписки wordpress , который объединил бы в себе все виды подписок, которые так необходимы сайту. Именно поэтому я решил сделать подборку лучших плагинов, которые смогут

    Слайд-шоу с помощью плагина для WordPress UnPointZero Slider
    Плагин для cms WordPress UnPointZero Slider – новостной слайдер. Он отражает в форме слайд-шоу изображения со ссылками на ваши статьи и краткие выдержки оттуда. Его можно установить и на новостной сайт,

    Плагины для Wordpress
    С помощью этого плагина вы легко сможете интегрировать Google диск на ваш WordPress сайт или блог . Gravity Forms — лучший плагин для создания форм на WordPress, от самых простых (например, форма

    Подписки плагином JetPack: размещение и редакция формы подписки
    Вступление Здравствуйте! В этой статье я покажу, как использовать плагин JetPack для создания пользовательской формы подписки и как эту формы подписки плагином JetPack добавлять в статьи сайта, а при

    Чистка сайта WordPress плагином WP-optimize
    От автора Со временем использования система WordPress накапливает не нужные файлы, комментарии и неиспользуемые данные в базе данных. Эти файлы и данные создаются в процессе работы и нужны для этого,

    Возможности Jetpack плагина
    Вступление Возможности Jetpack плагина это более 30 функциональных модуля плагина, делающего его универсальным плагином WordPress, заменяющего аналогичные сторонние плагины. Jetpack один заменяет десятки

    Резервное копирование WordPress сайта без плагинов
    Вступление Резервное копирование WordPress это второе, что нужно научиться делать после установки WordPress. Можно сколько угодно говорить о безопасности сайта и его защите, но лучшего варианта защиты

    Плагины на приват для Майнкрафт ПЕ
    > > Плагины на приват для Майнкрафт ПЕ Порой всем нам хочется попробовать себя в роли администратора сервера и испытать эту ответственность, но, к сожалению, вы не всегда все знаете о создании

    Плагин WordPress Database Backup. Архивация базы данных блога на WordPress
    Привет друзья! Сегодня на очереди еще один простой, НО, необходимый и полезный плагин — плагин WordPress Database Backup , который с легкостью и самостоятельно произведет процесс, который научно называется:

  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью