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

სხვადასხვა PHP კოდირება

  1. გამომცემელი
  2. x64 (aka andi)

ახალბედა სცენარის ავტორები არ აინტერესებს ისეთი რამ, როგორც კოდირება

ახალბედა სცენარის ავტორები არ აინტერესებს ისეთი რამ, როგორც კოდირება. აქედან გამომდინარე, საიტებზე ზოგჯერ შეგიძლიათ იპოვოთ საშინელი არეულობა, როდესაც მონაცემთა ბაზის მონაცემები მიიღება ერთი კოდირებით, გვერდი ჩამოყალიბებულია მეორეში და სერვერი მესამეა. შედეგად, თუ გვერდი შეიძლება გაშიფრულიყო, მაშინ სულ მცირე 2-ჯერ. სე რომ, რატომ ხდება ასეთი პრობლემა და როგორ გადალახოს იგი?

რუსულ სეგმენტში ყველაზე ხშირად შეგიძლიათ იპოვოთ ე.წ. Windows- კოდირება. სხვაგვარად დარეკეთ: Windows-1251, cp1251 ან თუნდაც ansi. შემდეგი არის utf-8. ასევე შეგიძლიათ მოიძიოთ სახელი უნიკოდი, მაგრამ ეს არ არის მთლიანად სწორი, რადგან უნიკოდი არის მთელი ჯგუფის საერთო სახელი (utf-8, utf-16, utf-32). და ძალიან პოპულარული rarity არის koi8-r ან უბრალოდ koi-8 - ერთხელ პოპულარული Linux კოდირება. რასაკვირველია, შესაძლებელია რუსეთის სეგმენტში რაღაც სხვაგვარად შეხვდეს, მაგრამ ეს ავტორის მიერ "სიამოვნებაა".

ძირითადი განსხვავება უტეფ -8 და სხვები (პირველ რიგში Windows-1251 და koi8-r) არის უკანასკნელი ერთი ბიტი და სიმბოლოების მაქსიმალური რაოდენობა, რომელიც შეიძლება აღინიშნოს ამ კოდირების გამოყენებით, შემოიფარგლება 256. იგი არ იტყვის, რომ ამ ტექსტის სრულ პრეზენტაციას არ შეიძლება საკმარისი. და html- ს გამოსავლენად მოიძებნა - ე.წ. მნიონერობის გამოყენება. მაგალითად:

© - & ასლი;

გარდა იმისა, რომ ყოველი ასეთი ხასიათი აღწერს პერსონაჟთა ჯგუფს, კოდი ხდება არასწორი და ტექსტის მუშაობა უფრო გართულებულია. ეს არის სადაც მულტიმედია უტე -8 მოდის სამაშველოში. ძალიან მოსახერხებელია გამოიყენოს სხვადასხვა ალფაბეტებისა და სხვადასხვა სიმბოლოების ასოები ერთ ტექსტში.

ამდენად, საწყის პირობებში ყველაზე კომფორტული კომპლექტია: მონაცემთა ბაზის კოდი, php სკრიპტი და html გვერდები / js სკრიპტები უნდა იყოს იგივე. რა თქმა უნდა, თქვენ შეგიძლიათ გამოიყენოთ სხვადასხვა, მაგრამ ამ შემთხვევაში არსებობს დაბნეული რისკი. არ აქვს მნიშვნელობა, რომელი კოდი გამოიყენება. თუ საიტი მხოლოდ რუსულენოვანი აუდიტორიისთვისაა, Windows-1251 საკმაოდ საკმარისი იქნება. სხვაგვარად, utf-8 იქნება ლოგიკური არჩევანი. პირველი ვარიანტი მეტ-ნაკლებად ნათელია. multibyte კოდირების მოითხოვს გარკვეული ჟესტები.

Uf-8- სთან მუშაობისას სტანდარტული ნოუთუსი არ მუშაობს ! ფაქტია, რომ ამ რედაქტორმა, ამ კოდირებისას ფაილის შენახვისას, დასძენს ხელმოწერის დასაწყისში - 3 სიმბოლო, ე.წ. ბომბი (ბიტიანი შეკვეთა ნიშანი), რომელიც შეიძლება გამოყენებულ იქნეს კოდირების განსაზღვრისას ფაილის გახსნისას. უმჯობესია აირჩიოთ სხვა რედაქტორი: notepad2 ან notepad ++ . პარამეტრებში უნდა აირჩიოთ შენახვა ხელმოწერის გარეშე.

შემდეგი მნიშვნელოვანი ნაბიჯი მუშაობს მონაცემთა ბაზასთან. სასურველია, რომ ბაზის / მაგიდის / ტექსტის ველის კოდირება შეესაბამება სკრიპტის კოდირებას (ეს შეიძლება იყოს cp1251 ან utf-8 ან სხვა რამ). თუ მონაცემთა ბაზის მონაცემები მიღებული იქნა "zyuk" სახით, სავარაუდოდ კავშირის კოდირება განსხვავდება მონაცემთა ბაზაში შენახული მონაცემებისაგან. შემდეგი შეკითხვა ხელს შეუწყობს სიტუაციის დაძლევას (შეასრულოს მონაცემთა ბაზასთან დაკავშირებისთანავე):

თუ საიტი იყენებს Windows-1251, თქვენ უნდა მიუთითოთ ის - cp1251.

ზოგადად, არაფერია რთული. მხოლოდ სტანდარტული PHP ფუნქციები არ არის შექმნილი მრავალმხრივი სიმებიანი მუშაობით. მაგრამ არსებობს სტანდარტული ბიბლიოთეკები, რომლებიც ხელს შეუწყობს სიტუაციის გამოსწორებას: iconv და mbstring . რეგულარული გამოხატვისთვის, ასევე საჭიროა შეცვლა, რომელიც გააქტიურებულია მოდიფიკატორის საშუალებით.

ასევე, მონაცემთა ბაზის მონაცემები მიღებულია, სკრიპტები იწერება ყველა წესის მიხედვით. ის რჩება სწორი სათაურის გაგზავნისა და გვერდის კოდი მომხმარებლის მომხმარებლის ბრაუზერში. ჩვენ ვგზავნით სასაქონლო პოზიციას:

სათაური ('content-type: text / html; charset = utf-8');

თუ ერთჯერადი ბიტიანი კოდირება გამოიყენება, სიმბოლოთა ღირებულება განსხვავდება Windows-1251 . ამის შემდეგ პრობლემები არ უნდა დარჩეს.

Uf-8- ში მუშაობის ზოგიერთი მარტივი მაგალითი:

მაგალითი 1: iconv, სიმბოლოთა რაოდენობა თითო ხაზი

$ s = 'string'; # string in utf-8 $ cnt1 = strlen ($ s); # შეიცავს ღირებულებას $ 12 cnt2 = iconv_strlen ($ s, 'UTF-8'); # სწორი ღირებულება, 6

მაგალითი 2: mbstring, სიმბოლოთა სიმბოლოების რაოდენობა

$ s = 'string'; # string in utf-8 $ cnt1 = strlen ($ s); # შეიცავს ღირებულებას $ 12 cnt2 = mb_strlen ($ s, 'UTF-8'); # სწორი ღირებულება, 6

მაგალითი 3: რეგულარული გამოხატვა, ძიება და გამოცვლა

$ s = 'სიმებიანი'; # ხაზი utf-8 $ s = preg_replace ('/ p / i', 'd', $ s); # ჩანაცვლება არ მოხდება $ s = preg_replace ('/ p / iu', 'd', $ s); # შედეგი სიტყვა დოკი

i მოდიფიკატორის განსაზღვრავს case-insensitive ძებნა და u მოდიფიკატორი ეუბნება რეგულარული გამოხატვის ძრავა მუშაობა utf-8 სიმები.

თუ ვინმე ამბობს, რომ php ვერ მუშაობს utf-8, ეს იქნება არასწორი. რამდენიმე წელია, რაც ამ პროექტს ვაკეთებ ამ პროექტში და არანაირი პრობლემა არ ყოფილა. საძიებო სისტემებმა დიდი ხანია გამოიყენეს ეს შესანიშნავი კოდირება.

გამომცემელი

ფორუმზე 11 საათი

x64 (aka andi)

კომენტარები: 2846 პუბლიკაციები: 395 რეგისტრაცია: 02-04-2009

?სე რომ, რატომ ხდება ასეთი პრობლემა და როგორ გადალახოს იგი?


Новости
    Без плагина
    На сайте 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) — поднятие позиций сайта в результатах... 
    Читать полностью