uy - Windows
Noto'g'ri ml 1c Bitrix kodlash nomi. Veb-sahifani noto'g'ri kodlash bilan bog'liq muammolarni hal qilish

Agar kodlash noto'g'ri bo'lsa, butun sayt yoki uning bir qismi "kryapozyablov" sifatida ko'rsatiladi, ya'ni. g'alati belgilar matnni o'qib bo'lmaydigan qiladi. Agar veb-server kodlash noto'g'ri sozlangan bo'lsa yoki sozlamalar mavjud bo'lmasa, bu holat yuzaga kelishi mumkin. Keling, mumkin bo'lgan variantlarni va muammolarni hal qilish usullarini ko'rib chiqaylik

Noto'g'ri HTML sahifa kodlash

Test faylini yaratamiz:

Sudo gedit /var/www/html/encoding.html

Keling, undan nusxa ko'rsatamiz:

Kodlashni tekshirish



Keling, ushbu faylni http://localhost/encoding.html brauzerida ochamiz

Ko'rib turganingizdek, kodlash brauzer tomonidan noto'g'ri aniqlangan:

Ushbu vaziyatni tuzatishning bir necha yo'li mavjud. Eng oddiy narsadan boshlaylik - veb-sahifa uchun kodlashni aniq belgilang. Bu teg ichida joylashgan bo'lishi kerak bo'lgan meta teg orqali amalga oshiriladi bosh:

Keling, ushbu qatorni test faylimizga qo'shamiz, shunda u quyidagicha ko'rinadi:

Kodlashni tekshirish

Kodlashni tekshirish uchun faylni sinab ko'ring



Quyidagi skrinshotda ko'rib turganimizdek, muammo hal qilindi:

Agar faylingizning kodlanishi boshqacha bo'lsa UTF-8, keyin bilan almashtiring Windows-1251 yoki veb-sahifaning kodlashiga mos keladigan. Fayl kodlashni qanday aniqlashni o'rganish uchun ko'rib chiqing.

Bu server sozlamalarini o'zgartirmasdan kodlash muammosini hal qilishning eng oson yo'li edi.

Keling, test faylimizni asl holatiga qaytaramiz va kodlashni belgilash usullarini o'rganishni davom ettiramiz.

Agar fayllar .htaccess Apache sozlamalari tomonidan yoqilgan, bu fayllar veb-server tomonidan yuborilgan sahifalarni kodlashni belgilash uchun ishlatilishi mumkin. Faylni qo'llab-quvvatlashni yoqish uchun .htaccess Apache konfiguratsiya faylida ( /etc/apache2/apache2.conf) chiziqlar guruhini toping

Variantlar Indekslar FollowSymLinks AllowOverride None Barchasi berilgan

Va uni almashtiring

AllowOverride None

AllowOverride All

Shundan so'ng, serverni qayta ishga tushirish kerak.

Sudo systemctl apache2.service ni qayta ishga tushiring

Fayl .htaccess sayt bilan bir xil katalogga joylashtirilishi kerak. Mening saytim veb-serverning asosiy katalogida joylashgan. Agar sizda ham xuddi shunday bo'lsa, endi papkada /var/www/html/ fayl yarating .htaccess va unga direktivani qo'shing AddDefaultCharset shundan so'ng kerakli kodlashni ko'rsating. Misollar

AddDefaultCharset UTF-8

AddDefaultCharset windows-1251

Siz faqat ma'lum formatdagi fayllarga qo'llaniladigan kodlashni belgilashingiz mumkin:

AddCharset utf-8 .atom .css .js .json .rss .vtt .xml

Fayllar to'plami har qanday bo'lishi mumkin, masalan:

AddCharset utf-8 .html .css .php .txt .js

Keyingi variant muqobil bo'lib, ma'lum turdagi fayllar uchun kodlashni o'rnatishga imkon beradi; u yoqilgan bo'lishini talab qiladi. mod_headers:

Sarlavhalar to'plami Content-Type "text/html; charset=utf-8"

Faylda ham ishlatilishi mumkin bo'lgan boshqa variant .htaccess UTF-8 kodlashni o'rnatish uchun:

IndexOptions +Charset=UTF-8

Agar sayt PHP-da bo'lsa, siz qo'shimcha ravishda kodlashni takrorlashingiz kerak bo'lishi mumkin php_value default_charset:

AddDefaultCharset windows-1251 php_value default_charset "cp1251"

.htaccess faylini yaratish o'rniga, veb-server konfiguratsiya faylida kodlashni o'rnatishingiz mumkin. Apache CentOS/Fedora uchun bu httpd.conf fayli va Debian/Ubuntu da bu apache2.conf fayli. O'zgarishlar kuchga kirishi uchun kodlashni o'rnatish va veb-serverni qayta ishga tushirish uchun quyidagi qatorni qo'shing:

AddDefaultCharset UTF-8

PHP da UTF-8 kodlash qanday o'rnatiladi

PHP skriptida kodlash o'rnatilgan sarlavha, Masalan:

Sarlavha("Content-Type: charset=utf-8");

Odatda, kodlash bilan bir qatorda kontent turi ham ko'rsatiladi (misolda, HTML sahifasi uchun variant):

Sarlavha("Content-Type: text/html; charset=utf-8");

RSS tasmasi uchun yana bir variant:

Sarlavha("Tarkib turi: matn/xml; charset=utf-8");

Funktsiya ekanligini unutmang sarlavha brauzerga chiqishdan oldin chaqirilishi kerak. Aks holda (agar brauzerga chiqish allaqachon qilingan bo'lsa), unda sarlavhalar allaqachon yuborilgan. Shubhasiz, bu holda ularni o'zgartirish endi mumkin emas. Agar brauzerga xato xabari chiqarilgan bo'lsa, sarlavhalar allaqachon yuborilgan va sarlavhadan foydalanish xatolikka olib keladi. Sarlavhalar allaqachon yuborilganligini tekshirish uchun foydalaning sarlavhalar_yuborildi.

Ta'riflangan usul faqat PHP skripti sahifa mazmunini to'liq hosil qilganda ishlaydi. Statik sahifalarni (masalan, html) utf-8 kodlashda saqlashingiz kerak. Aksariyat veb-serverlar fayl kodlashiga e'tibor beradi va shunga mos ravishda sarlavha qo'shadi. Aslida, PHP faylini utf-8 kodlashda saqlash xuddi shunday natijaga olib keladi.

MySQL ma'lumotlar bazasidan natijalarni noto'g'ri kodlash

Agar sizning saytingiz ma'lumotlar bazasidan olingan ma'lumotlardan hosil bo'lgan statik qism (shablon) va dinamik qismdan iborat bo'lsa, saytning bir qismida to'g'ri kodlash, saytning boshqa qismida noto'g'ri bo'lgan vaziyat yuzaga kelishi mumkin. bitta. Bunday holda, veb-server sozlamalarini o'zgartirish foydasizdir - chunki baribir sahifaning bir qismida noto'g'ri kodlash bo'ladi.

Jadvallaringizni kodlashni aniqlashdan boshlashingiz kerak. Ko'rishingiz mumkin phpMyAdmin:

Ustunga e'tibor bering " Taqqoslash", kirish" utf8_unicode_ci" kodlash ishlatilganligini bildiradi UTF-8.

Siz MySQL DBMSga ulanishingiz va phpMyAdminsiz jadvallarning kodlanishini tekshirishingiz mumkin. Buning uchun:

Mysql -u root -p

Agar siz ma'lumotlar bazasi nomini unutgan bo'lsangiz, buyruqni bajaring:

MA'LUMOT BAZALARINI KO'RSATISH;

Aytaylik, men information_schema ma'lumotlar bazasida jadvallar uchun kodlashni qidirmoqchiman

Axborot_sxemasidan foydalanish;

Jadvallarning nomlarini unutgan bo'lsangiz, ishga tushiring:

jadval_nomidan TO'LIQ USTUNLARNI KO'RSATISH;

Masalan:

GLOBAL_STATUSDAN TO'LIQ USTUNLARNI KO'RSATISH;

Siz shunga o'xshash narsani ko'rasiz:

Ustunga qarang Harakatlash. Mening holimda u erda utf8_general_ci, xuddi shunday utf8_unicode_ci, kodlash UTF-8. Aytgancha, agar siz kodlashlar orasidagi farq nima ekanligini bilmasangiz utf8_general_ci, utf8_unicode_ci, utf8mb4_general_ci, utf8mb4_unicode_ci, shuningdek, MySQL ma'lumotlar bazasi uchun qanday kodlashni tanlash kerak, keyin qarang.

Endi biz kodlashni bilganimizdan so'ng (mening holimda bu UTF-8), har safar MySQL DBMSga ulanganingizda so'rovlarni ketma-ket bajarishingiz kerak:

SET NAMES UTF8 SET CHARACTER SET UTF8 SET character_set_client = UTF8 SET character_set_connection = UTF8 SET character_set_results = UTF8

PHP da buni shunday qilish mumkin:

$this->mysqli = yangi mysqli($server, $username, $parol, $basename); if ($this->mysqli->connect_error) ( $this->errorHandler_c->logError(1, "Ulanish xatosi (" . $this->mysqli->connect_errno. ") " . $this->mysqli->connect_error , $_SERVER ["REQUEST_URI"]); ) $this->mysqli->query("SET NAMES UTF8"); $this->mysqli->query("CHARACTER SET SET UTF8"); $this->mysqli->query("SET character_set_client = UTF8"); $this->mysqli->query("SET character_set_connection = UTF8"); $this->mysqli->query("SET character_set_results = UTF8");

shu esta tutilsinki UTF8 uni jadvallaringiz uchun ishlatiladigan kodlash bilan almashtirishingiz kerak.

Fayl kodlashni o'zgartirish

Agar siz boshqa yo'l bilan borishga qaror qilsangiz va yangi kodlashni o'rnatish o'rniga, fayllaringizning kodlanishini o'zgartiring, keyin "" maqolasiga qarang. U sizga fayllarning joriy kodlanishini qanday aniqlashni va fayllarni istalgan kodlashga (faqat UTF-8 emas) qanday aylantirishni aytadi.

Server qanday kodlashni yuborayotganini qanday aniqlash mumkin

Agar siz veb-serverda qanday kodlash sozlamalari mavjudligini (u sarlavhalarda qanday kodlash jo'natishini) bilmoqchi bo'lsangiz, quyidagi buyruqdan foydalaning:

Curl URL -s -o /dev/null -D /dev/stdout | grep -E "charset"

Buning o'rniga URL tekshirilayotgan saytning haqiqiy manzilini kiriting. Agar sayt HTTPS dan foydalansa, masalan, protokol bilan birga sayt manzilini ko'rsating

Curl https://softocracy.ru -s -o /dev/null -D /dev/stdout | grep -E "charset"

Veb-sayt uchun qaysi kodlashni tanlash kerak

Lekin birinchi navbatda men Sergey Volkov va Denis Sharomovga o'z minnatdorchiligimni bildirmoqchiman, ularning materiallari ushbu maqolani tayyorlashda yordam berdi.

Diqqat! Sayt fayllarini ftp yoki ssh orqali tahrirlashingiz kerak.

Endi boshlaymiz.

1. Zaxira nusxasini yarating va ma'lumotlar bazasi va barcha sayt fayllarini qo'shishni unutmang.

2. Agar virtual xostingdan foydalansangiz, quyidagi parametrlarni oʻrnatish uchun texnik yordam soʻrang:

mbstring.func_overload 2
mbstring.internal_encoding UTF-8
Bitrix virtual mashinasidan foydalansangiz, ularni o'zingiz o'rnatishingiz mumkin.

3. "Qidiruv" modullarini jadvallarni va "Web Analytics" modullarini (jadvallarni saqlamasdan, lekin xabar shablonlarini saqlamasdan) olib tashlang.

4. "Forum" modulidagi lug'atdan transliteratsiyani olib tashlang ( Xizmatlar > Forumlar > Behayo so‘zlar filtri > Translit lug‘at) ID = 7 bo'lgan "yo" harfi.

5. Mintaqaviy sozlamalarda kodlashni windows-1251 dan utf-8 ga o'zgartiring.


Sayt sozlamalarida tegishli mintaqaviy sozlama tanlangan bo'lishi kerak.

6. /bitrix/php_interface/dbconn.php ga qo'shing:

aniqlash("BX_UTF", rost);

7. convert_utf8.php skriptini saytning asosiy katalogiga yuklang, uni ishga tushiring va bajarilishini kuting.
Birinchi qadam - fayllarni o'zgartirish uchun ruxsatlarni tekshirish, ikkinchisi - barcha sayt fayllarini o'zgartirish va oxirgisi - ma'lumotlar bazasi kodlashini o'zgartirish.
Agar sizda juda katta ma'lumotlar bazasi bo'lsa, uni konvertatsiya qilish juda uzoq vaqt talab qilishi yoki umuman muvaffaqiyatli bo'lmasligi mumkin. Bunday holda, biz ma'lumotlar bazasi kodlashni qo'lda quyidagi tarzda o'zgartiramiz. "SQL so'rovi" sahifasidagi administrator panelida quyidagi so'rovni bajaring:


Bu erda ma'lumotlar bazasi_nomi ma'lumotlar bazasi nomidir.
Ushbu so'rov sahifada yangi so'rovni keltirib chiqaradi, uni xuddi shu sahifada bajarish kerak bo'ladi:


Yangi so'rovning barcha qatorlaridan nusxa oling (har bir sahifadagi yozuvlar sonini ko'rsatish chegarasini o'chirishni unutmang) va natijada yangi so'rovni bajaring. Bajarish tugagandan so'ng, barcha ma'lumotlar bazasi jadvallari UTF-8 kodlashiga o'tkaziladi.

8. /bitrix/php_interface/after_connect.php da yozing:

$DB->So'rov("NOMLARNI SET "utf8""); $DB->Query("SET collation_connection = "utf8_unicode_ci"");

9. /bitrix/php_interface/after_connect_d7.php da yozing:
$connection->queryExecute("NOMLARNI SET "utf8""); $connection->queryExecute("SET collation_connection = "utf8_unicode_ci"");

10. /bitrix/.settings.php da yozing:
qaytish massivi ("utf_mode" => massiv ("qiymat" => rost, "faqat o'qish" => rost,),

11. Butun sayt keshini tozalang va profilingizdan chiqing, keyin yana tizimga kiring.

12. convert_utf8.php skriptini olib tashlang.

13. "Qidiruv" modulini o'rnating va qayta indekslang.

14. “Web Analytics” modulini o'rnating, agar siz undan oldin foydalansangiz.

Tayyor!

Saytni o'zgartirgandan so'ng, ketma-ketlashtirilgan massivlar bilan bog'liq muammolar paydo bo'lishi mumkin (asosan, bu Html-matn xususiyatlari va boshqaruv panelidagi foydalanuvchilar uchun ekran sozlamalari). Bunday holda, u sizga yordam beradi

Birinchi darajali porno videolarning ulkan to'plami hayoliy zavq olamiga eshiklarni ochishga tayyor. Pornhub.com o'zi taklif qilayotgan xizmatlarning beqiyos sifati bilan mashhur bo'ldi, shuning uchun bizning saytni tanlashda hamma narsa eng mayda detallargacha o'ylanganligiga ishonch hosil qiling. Turli toifalarning ko'pligi har bir tashrif buyuruvchini, xoh tajribali tomoshabin, xoh yangi boshlovchini quvontiradi. Taqdim etilgan material alohida ehtiyotkorlik bilan tanlangan, shuning uchun pornhub.com saytining har bir muxlisi unutilmas erotik muhitga kirishi mumkin. Rohat ostonasida sizni eng yaxshi videolarini taqdim etishga tayyor porno yulduzlar kutib olishadi. Ularda professionallar o'z tanalarini barcha ko'rinishlarida issiq jinsiy aloqada ko'rsatadilar. Uy qurilishi pornosini rag'batlantirish muxlislari ham mahrum bo'lmaydilar. Pornhub iqtidorli jinsiy qobiliyatlari bilan hayratga tushishga tayyor bo‘lgan yoqimtoy qizlar ishtirokidagi ulkan sahnalar to‘plamini taqdim etadi. Ularning professional videolarda suratga tushish maqsadi yo‘q, biroq ularning qobiliyatlari porno yulduz bilan bemalol raqobatlasha oladi. Mulattolar, osiyoliklar va qora tanli qizlar ishtirok etgan kadrlar ko'pligidan ekzotika muxlislarini hayratda qoldiradilar. Siz shunchaki biror narsa haqida o'ylashingiz kerak va sevgining itoatkor ruhoniylari darhol sizning sevimli fantaziyalaringizni eng yaxshi tarzda amalga oshiradilar. O'zingizga sodiq bo'ling, lekin yaxshi sikish va qoniqarli erkak injiqliklari haqida ko'p narsalarni biladigan tajribali nimflarga ishonib, dam olishni unutmang. Ba'zida biz o'zimizga nima kerakligini tushunolmaymiz, lekin baxtga Pornhub bu kabi savollar tug'ilmaydigan joy.

Sizni hozirgi kayfiyatingizga mos muhitda dam olishga taklif qilamiz. Ehtimol, endi siz aqldan ozgan uchlikdan mamnun bo'lasiz, lekin ertaga sizning istaklaringiz tubdan farq qiladi va tanlov yoqimli model bilan romantik jinsiy aloqaga tushadi. Bularning barchasini va boshqa ko'p narsalarni bu erda topasiz, chunki pornhub tanlovni sizga qoldiradi. Siz o'zingizning injiqliklaringizni sayt imkoniyatlariga moslashtirishingiz shart emas, chunki bizda yaxshi pornoni biluvchiga kerak bo'lgan hamma narsa mavjud. Jinsiy qoniqish dunyosiga yo'l ko'rsatuvchi sifatida biz yuqori sifatli xizmatlarni taqdim etishning barcha nuanslarini o'rganib chiqdik, shuning uchun agar siz o'yin-kulgi uchun ideal joy izlayotgan bo'lsangiz, unda siz to'g'ri joydasiz. Agar sizda ma'lum maqsadlar bo'lsa, sevimli porno videolaringiz sahifalarida ularga erishishingiz mumkin. Agar siz yangi narsa uchun kelgan bo'lsangiz, biz sizni yangi tayyorlangan material bilan tanishishingizni taklif qilamiz.

Biz har bir tomoshabinga munosib qoniqish va ajoyib vaqtni kafolatlaymiz. Pornhub sizga faqat eng yaxshi videolarni olib kelish uchun eshiklarini ochadi. Endi ma'nosiz qidiruvlar haqida tashvishlanishingiz shart emas, chunki siz uchun hamma narsa allaqachon qilingan. Yana qayerda, agar bu erda bo'lmasa, siz o'zingizni turli xil syujetlar va orzularingizni amalga oshirishning ajoyib sifati bilan erkalay olasiz. Biz sizga bir kunlik sayohatni emas, balki shahvat va buzuqlik yurtiga cheksiz sayohat qilish imkoniyatini taklif qilamiz. Bu erda har bir tashrif buyuruvchi sizga kerak bo'lgan hamma narsani va hatto bir oz ko'proq narsani topadi.



 


O'qing:



Eng yaxshi simsiz minigarnituralar reytingi

Eng yaxshi simsiz minigarnituralar reytingi

Universal quloqlarni arzon sotib olish mumkinmi? 3000 rubl - bunday pulga yuqori sifatli eshitish vositalarini sotib olish mumkinmi? Ma'lum bo'lishicha, ha. Va nutq ...

Mobil qurilmaning asosiy kamerasi odatda tananing orqa tomonida joylashgan bo'lib, fotosuratlar va videolarni olish uchun ishlatiladi

Mobil qurilmaning asosiy kamerasi odatda tananing orqa tomonida joylashgan bo'lib, fotosuratlar va videolarni olish uchun ishlatiladi

Yaxshilangan xarakteristikalar va yuqori avtonomiyaga ega planshetning yangilangan versiyasi.Acer smartfonlariga kamdan-kam tashrif buyuradi...

Raqamingizni saqlab qolgan holda boshqa operatorga qanday o'tish mumkin

Raqamingizni saqlab qolgan holda boshqa operatorga qanday o'tish mumkin

Rossiyada 1 dekabrdan boshlab abonent boshqa uyali aloqa operatoriga o‘tganda telefon raqamini saqlab qolish to‘g‘risidagi qonun kuchga kirdi. Biroq, ma'lum bo'lishicha, ...

phabletni ko'rib chiqish, qimmat, lekin juda malakali

phabletni ko'rib chiqish, qimmat, lekin juda malakali

Qimmatbaho, lekin juda malakali fablet sharhi 20.03.2015 Men dunyodagi etiksiz yagona poyabzalchiman, o'z smartfonimsiz smartfon sharhlovchisiman....

tasma tasviri RSS