Konvertálása kétbájtos karakterek php - verem túlcsordulás az orosz
Kérem, mondja, hogyan kell lefordítani kétbájtos karaktereket egy kódolási másik, azaz Az utf-8 cp1251 a php. Ie mondjuk szeretnék átalakítani a levél „g” utf-8 cp1251. Tudomásul veszem, hogy kap két karakter [syntax = php] P [/ szintaxis] és [syntax = php] i [/ szintaxis], azaz két bájt, de nekem most, mint én hozzá őket, vagy hogy egy tizedes, majd, hogy minden olyan intézkedés, például kivonni 848, hogy ugyanazt a szobában cp1251 rendszer
Érdeklődöm az az út, nem üzemképes
meghatározott február 6. '13 at 13:06
Utf-8 karakter kell fordítani az UCS kódok és azokat (amennyiben lehetséges) a cp1251. Természetesen nem minden UCS (pl: latin-1, karakter grafika, karakterek, stb) lehet alakítani cp1251.
Hogyan lehet átalakítani utf-8 UCS.
Nézd első (jel) bit byte utf-8. Ha ez 0, akkor UCS kód megegyezik az értéke ez a bájt (ez ASCII).
Ha az első két bit értéke 10 vagy érték 0xff byte vagy 0xfe, ez egy hiba utf-8.
Most elemezze a nagy értékű bit byte. Kiválasztjuk több 1, majd a 0. byte-ok száma megegyezik az egyesek száma UTF-8 kódolású UCS. A maradék a byte egy magas helyiértékű bit a kódolt UCS. Így minden byte követi ezt a szimbólumot kell kezdődnie 10, és a maradék 6 bitet kódolni, egy másik része ucs.
Minden cirill kódolt 2-bájtos utf-8. Például, Orosz A (UCS kód 0x410) UTF-8 2 bájt 0xd0 0x90
Egy másik példa a szimbólum száma
Tény, hogy gyorsabban írni egy programot (I könnyebben C, de érdekli a PCP), mint elmagyarázni, orosz szavakat.
A 2-bájtos str [], érkezett az első 5 bit b1, b2 és 6
vagy ha nem PCP bites műveleteket (remélhetőleg való osztás maradéka van), majd a