See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 6768|Vastuse: 0

UTF-8 kodeerimisprobleemi BOM on üksikasjalikult kirjeldatud

[Kopeeri link]
Postitatud 30.10.2014 17:38:44 | | |
UTF-8 BOM probleemid, millele WordPressis tähelepanu pöörata
Mul tekkis probleem väga varakult, nimelt pärast teatud plugina paigaldamist ilmus valge ekraan, kui klõpsasin aktiveerimiseks. Ma pole kunagi aru saanud, mis põhjus on, ja eelmine lahendus oli, et kui fail ei sisalda hiina märke, tuleb fail otse ASCII-koodi üle kanda, mida saab üldiselt lahendada. Kui ma täna oma vennale blogi sain, juhtus see olukord uuesti. Pärast pikka uurimist leidsin lõpuks vastuse.

Unicode'i spetsifikatsioonis on BOM-i kontseptsioon. BOM - Baitide järjekorramärk, mis on baitide järjekord. Leia BOM-i kohta märkus siit:

UCS koodis on märk nimega "ZERO WIDTH NO-BREAK SPACE", mis on kodeeritud kui FEFF. FFFE on UCS-is olematu tegelane, seega ei tohiks see tegelikus ülekandes esineda. UCS spetsifikatsioon soovitab enne baitvoo edastamist üle kanda märk "ZERO WIDTH NO-BREAK SPACE". Nii näitab see, et kui vastuvõtja saab FEFF-i, näitab see, et baitvoog on Big-Endian; Kui FFFE vastu võetakse, näitab see, et baitvoog on Little-Endian. Seetõttu nimetatakse märki "ZERO WIDTH NO-BREAK SPACE" ka BOM-iks.

UTF-8 ei vaja baitide järjekorra näitamiseks BOM-i, kuid see võib kasutada BOM-i, et näidata, kuidas see on kodeeritud. Tähemärgi "ZERO WIDTH NO-BREAK SPACE" UTF-8 KODEERIMINE ON EF BB BF. Kui vastuvõtja saab baitvoo, mis algab EF BB BF-ga, teab ta, et see on UTF-8 kodeerimine.

Windows kasutab BOM-i, et märkida, kuidas tekstifailid kodeeritakse.

Lisaks selgitab unicode veebilehe KKK-BOM BOM-i üksikasjalikult. Ametlik looduslik autoriteet, kuid inglise keeles, tundub olevat keerulisem.

UTF-8 kodeeritud failis hõivab BOM kolm baiti. Kui kasutad Notepadi, et salvestada tekstifail UTF-8 kodeeringuna, ava fail UE-ga ja lülitu kuueteistkümnendsüsteemile, et näha FFFE-d alguses. See on hea viis UTF-8 kodeeritud failide tuvastamiseks, tarkvara kasutab BOM-i, et tuvastada, kas fail on UTF-8 kodeeritud, ning paljud tarkvarad nõuavad ka, et imporditud fail omaks BOM-i. Siiski on endiselt palju tarkvara, mis BOM-i ei tunnista. Kui ma Firefoxi uurisin, teadsin, et varasemates Firefoxi versioonides ei saanud laiendustel olla BOM-i, kuid Firefox 1.5 ja hilisemad versioonid on hakanud BOM-i toetama. Nüüd sain teada, et PHP ei toeta samuti BOM-i.

PHP on loodud ilma BOM-i arvestamata, mis tähendab, et see ei ignoreeri BOM-i kolme märki UTF-8 kodeeritud faili alguses. Kuna see peab olema
Nagu nägin Bo-Blogi vikist, on Bo-Blog, mis kasutab samuti PHP-d, samuti BOM-i tõttu hädas. Teine probleem on mainitud: "COOKIE saatmismehhanismi piirangute tõttu ei saa failides, millel on juba BOM nende failide alguses, COOKIE-sid saata (sest PHP on juba failipäise saatnud enne COOKIE saatmist), seega on sisselogimis- ja väljalogimisfunktsioonid kehtetud. Kõik funktsioonid, mis tuginevad COOKIE-dele ja SESSIOONIDELE, on kehtetud. See peaks olema põhjus, miks WordPressi taustal on tühi leht, sest kõik käivitatud failid sisaldavad nimekirja ja kõik kolm märki saadetakse välja, põhjustades küpsiste ja sessioonide funktsionaalsuse ebaõnnestumise.

Lahendus on salvestada fail ASCII-koodina, kui see sisaldab ainult ingliskeelseid märke (või ASCII kodeeringu märke). Kui kasutad redaktorit nagu UE, klõpsa File->Convert->UTF-8 to ASCII või vali ASCII kodeerimine Save As. Kui see on rida, mis lõpeb DOS-formaadis, saad selle avada Notepadiga, klõpsata Salvesta nagu ja valida ASCII kodeeringu. Kui see sisaldab hiina tähemärke, saad kasutada UE salvestust funktsioonina ja valida "UTF-8 no BOM". Palun vaadake allolevat pilti:

Vastavalt Bo-Blogi vikijuhistele: Editplus tuleb salvestada gb kujul ja seejärel UTF-8-na. Ole siiski ettevaatlik, sest kõik märgid, mis GBK kodeeringusse ei kuulu, kaovad. Kui failis on mõned mittehiina märgid, ära kasuta seda meetodit. (Selle väikese aspekti põhjal on UE - UltraEdite-32 tõesti palju parem kui Editplus, Editplus on liiga kerge)

Teine viis, mille leidsin, on kasutada WordPressi poolt pakutavat failiredaktorit. See meetod ei ole piiratud ja pole vaja alla laadida spetsiaalset redaktorit, sest kõik kasutavad ju Wordpressi. Esmalt lülita sisse selle faili kirjutamisõigus, mida soovid ftp-s redigeerida, seejärel sisesta WordPressi taust – > haldus- > failiredaktor, sisesta tee faili muutmiseks ja klõpsa Muuda faili. Sa ei näe esimesi kolme märki redigeerimisekraanil, aga see on okei – aseta kursor kogu faili esimese tähemärgi ette ja vajuta Backspace-klahvi. OK, klõpsa Uuenda faili, värskenda see ftp-s, näed, et fail on 3 baiti väiksem ja oled valmis.

Lõpuks on see suur probleem – kõik, kes soovivad kirjutada oma pluginaid, redigeerida teiste pluginaid enda tarbeks ja peavad malli muutma (hinnanguliselt vajab kõik), on kõige parem mõista eelnevat teadmist, et mitte üle koormatud olla, kui tekib probleem.





Eelmine:Vaata, kuidas algkooliõpilased mängivad LOL ja tapavad kõik sekunditega! (Viimane mängija originaal)
Järgmine:Luo Yonghao vastas, et "alla 2500 haamriga mobiiltelefonid on lapselapsed"
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com