forskellige php kodninger

  1. Forfattere
  2. x64 (aka andi)

novice script skribenter er ligeglad med sådan en ting som kodning

novice script skribenter er ligeglad med sådan en ting som kodning. På steder kan du til tider finde et forfærdeligt rod, når dataene fra databasen er opnået i en kodning, bliver siden dannet i en anden, og serveren får den tredje. Som et resultat, hvis siden kan dekrypteres, så mindst 2 gange. Så hvorfor opstår et sådant problem, og hvordan man overvinder det?

I det russiske segment kan du oftest finde den såkaldte Windows-kodning. kalder det anderledes: windows-1251, cp1251 eller endda ansi. det næste er utf-8. Du kan også finde navnet unicode, men det er ikke helt korrekt, da Unicode er det generelle navn for hele gruppen (utf-8, utf-16, utf-32). og en meget populær sjældenhed er koi8-r eller simpelthen koi-8 - den engang populære Linux-kodning. Det er selvfølgelig muligt at møde noget andet i det russiske segment, men det er snarere en "overbærenhed" af forfatteren.

Hovedforskellen mellem utf-8 og andre (primært windows-1251 og koi8-r) er den sidste enbyte, og det maksimale antal tegn, der kan repræsenteres ved hjælp af disse kodninger, er begrænset til 256. Det siger sig selv, at for en komplet præsentation af denne tekst Måske er det ikke nok. og for html blev der fundet en løsning - brugen af ​​såkaldte mnemonics. for eksempel:

© - & copy;

foruden det faktum, at hver sådan karakter beskrives af en gruppe tegn, bliver koden ulæselig og arbejdet med teksten bliver mere kompliceret. Det er her, hvor multibyte utf-8 kommer til undsætning. Det er meget praktisk at bruge bogstaver af forskellige alfabeter og forskellige symboler i en tekst.

Således er det mest behagelige sæt af indledende betingelser som følger: Kodningen af ​​databasen, php scripts og html sider / js scripts bør være den samme. Selvfølgelig kan du bruge forskellige, men i dette tilfælde er der risiko for at blive forvirret. det er ligegyldigt hvilken kode side der bruges. Hvis webstedet kun er til et russisk talende publikum, vil windows-1251 være nok. ellers ville utf-8 være det logiske valg. den første mulighed er mere eller mindre klar. multibyte kodning vil kræve nogle bevægelser.

Når du arbejder med utf-8, vil en standard notesblok ikke fungere ! Faktum er, at denne editor, når du gemmer en fil i denne kodning, tilføjer en signatur til starten - 3 tegn, den såkaldte bom (byte-ordre), som kan bruges til at bestemme kodningen, når du åbner en fil. det er bedre at vælge en anden editor: Notepad2 eller notesblok ++ . i indstillingerne skal du vælge at gemme uden en underskrift.

Det næste vigtige skridt arbejder med databasen. Det er yderst ønskeligt, at kodningen af ​​basen / tabellen / tekstfeltet passer til scriptkodningen (det kan være cp1251 eller utf-8 eller noget andet). hvis dataene fra databasen er opnået i form af "zyuk", er det sandsynligvis, at kodningen af ​​forbindelsen er forskellig fra de data, der er lagret i databasen. Følgende forespørgsel hjælper med at overvinde situationen (udfør umiddelbart efter tilslutning til databasen):

Hvis webstedet bruger Windows-1251, skal du angive det - cp1251.

Generelt er der ikke noget svært. kun standard php funktioner er ikke designet til at arbejde med multibyte strenge. men der er standard biblioteker, der vil hjælpe med at rette op på situationen: iconv og mbstring . For regulære udtryk er der også en nødvendig switch, der aktiveres med modifikatoren u .

Nå er dataene fra databasen opnået, scripts er skrevet i overensstemmelse med alle reglerne. Det er fortsat at sende den korrekte titel og vise sidekoden i brugerens browser. vi sender overskriften således:

header ('Content-Type: text / html; charset = utf-8');

hvis der anvendes single-byte-kodning, vil værdien for charset være anderledes - windows-1251 . Derefter bør problemer ikke forblive.

Nogle enkleste eksempler på at arbejde med utf-8 i php:

Eksempel 1: ikonv, antal tegn pr. linje

$ s = 'streng'; # streng i utf-8 $ cnt1 = strlen ($ s); # vil indeholde værdien $ 12 cnt2 = iconv_strlen ($ s, 'UTF-8'); # Korrekt værdi, 6

Eksempel 2: mbstring, antallet af tegn i en streng

$ s = 'streng'; # streng i utf-8 $ cnt1 = strlen ($ s); # vil indeholde værdien $ 12 cnt2 = mb_strlen ($ s, 'UTF-8'); # Korrekt værdi, 6

Eksempel 3: Regulære udtryk, Søg og erstat

$ s = 'String'; # linje i utf-8 $ s = preg_replace ('/ p / i', 'd', $ s); # udskiftning sker ikke $ s = preg_replace ('/ p / iu', 'd', $ s); # resultatorddok

I modifikatoren foreskriver tilfælde af ufølsom søgning, og u- modifikatoren fortæller den regulære ekspressionsmotor at arbejde med utf-8-strenge.

hvis nogen siger at php ikke kan fungere med utf-8, vil det være forkert. I flere år har jeg nu gjort alle mine projekter i denne kodning, og der var slet ingen problemer. Søgemaskiner selv har længe brugt denne vidunderlige kodning.

Forfattere

offline 11 timer

x64 (aka andi)

Kommentarer: 2846 Publikationer: 395 Registrering: 02-04-2009

Новости

Как сбалансировать юзабилити и дизайн при создании сайта — User House
Красота или уродство в веб-дизайне всегда связаны с восприятием конкретного человека. То, что для одного «красиво», может быть «ужасным» для другого и наоборот. Но как же так получается, что многие популярные

Чем лучше юзабилити сайта – тем больше лояльных клиентов
Хотите понять, как посетители воспринимают сайт? Это очень просто. Представьте, что вы говорите по телефону с директором, и в это время вам звонит кто-то из родственников, а у вас еще работы на четыре

Знакомство с юзабилити-тестированием сайта. // webknowledge.ru
Перевод статьи:   An Introduction To Website Usability Testing. Автор:   Thomas Churm. При создании нового сайта необходимо учитывать множество факторов. Для того чтобы у посетителей возникло

Специалист по web-usability – боец невидимого фронта
Ярослав Перевалов Что такое usability engineering? Часто ли вы, бродя по Сети, обращаете внимание на то, насколько качественно структурирована информация на сайте и насколько удобно устроена навигация?

Гид по UX исследованиям для начинающих
В индустрии, в основе которой лежит использование людьми наших продуктов, услуг и приложений, исследования просто необходимы. Мы задаем вопросы. Мы делаем пометки. Мы стараемся узнать все, что возможно,

25 советов как улучшить юзабилити (usability) вашего сайта. | Блог об интернет деятельности и трудовых буднях Максима Вячеславовича
Доброго времени суток, дорогие друзья! Сегодня мы поговорим с вами о такой важной вещи как U sability (юзабилити) сайта , о том, как улучшить данный фактор, зная его основные принципы и правила.

Что такое юзабилити и зачем оно нужно
Юзабилити включает простоту, удобство в пользовании, тестирование, проведение аудита проекта. Юзабилити сайтов, интернет-магазинов — это неотъемлимая часть выгодного ведения бизнеса. Задача юзабилити

Юзабилити тестирование сайта турагентства
«Когда информации много и она дешева, дорогим становится внимание». James Gleick Представим сайт, владелец которого считает его достаточно хорошим, удобным и привлекательным. Он размещает рекламные объявления

Юзабилити
Юзабилити (от англ. слова «usability» – практичность, простота использования) – это весьма распространенное ныне понятие объединяет максимальное удобство использования сайта и полезность информации, на

5 шагов для успешного юзабилити-тестирования приложения
Представьте: вы придумали и разработали мобильное приложение с приятным, на ваш взгляд, дизайном, удобным функционалом, полезными опциями, выпустили релиз продукта, но… Несмотря на мощную маркетинговую

Карта