UTF-8 BOM-ongelmia, joihin kannattaa kiinnittää huomiota WordPressissä Kohtasin ongelman hyvin varhaisessa vaiheessa, eli kun asennin tietyn lisäosan, valkoinen ruutu ilmestyi aktivoimisen klikkauksen jälkeen. En ole koskaan keksinyt syytä, ja edellinen ratkaisu oli, että jos tiedosto ei sisällä kiinalaisia merkkejä, siirrä tiedosto suoraan ASCII-koodiin, joka yleensä voidaan ratkaista. Kun sain tänään blogin veljelleni, sama tilanne toistui. Pitkän tutkimisen jälkeen löysin vihdoin vastauksen.
Unicode-määrittelyssä on BOM-käsite. BOM - tavujen järjestysmerkki, joka on tavujen järjestysmerkki. Löydät huomautuksen BOM:sta täältä:
UCS-koodissa on merkki nimeltä "ZERO WIDTH NO-BREAK SPACE", joka on koodattu muotoon FEFF. FFFE on olematon merkki UCS:ssä, joten sen ei pitäisi esiintyä varsinaisessa lähetyksessä. UCS-määrittely suosittelee, että siirrämme merkin "ZERO WIDTH NO-BREAK SPACE" ennen tavuvirran lähettämistä. Näin, jos vastaanottaja saa FEFF:n, se osoittaa, että tavuvirta on Big-Endian; Jos FFFE vastaanotetaan, se tarkoittaa, että tavuvirta on Little-Endian. Siksi merkkiä "ZERO WIDTH NO-BREAK SPACE" kutsutaan myös BOM:ksi.
UTF-8 ei vaadi BOM:ia tavujärjestyksen osoittamiseen, mutta se voi käyttää BOM:ia koodauksen osoittamiseen. Merkin "ZERO WIDTH NO-BREAK SPACE" UTF-8-KOODAUS ON EF BB BF. Jos vastaanottaja saa tavuvirran, joka alkaa EF BB BF:llä, se tietää, että kyseessä on UTF-8-koodaus.
Windows käyttää BOM:ia merkitsemään, miten tekstitiedostot koodataan.
Lisäksi unicode-sivuston UKK-BAM selittää BOM:n yksityiskohtaisesti. Virallinen luonnollinen auktoriteetti, mutta englanniksi, vaikuttaa työläämmältä.
UTF-8-koodatussa tiedostossa BOM vie kolme tavua. Jos käytät Notepadia tallentaaksesi tekstitiedoston UTF-8-koodauksella, avaa tiedosto UE:llä ja vaihda heksadesimaalimuokkaustilaan nähdäksesi FFFE:n alussa. Tämä on hyvä tapa tunnistaa UTF-8-koodatut tiedostot, ohjelmisto käyttää BOM:ia tunnistaakseen, onko tiedosto UTF-8-koodattu, ja monet ohjelmistot vaativat myös, että tuodussa tiedostossa on BOM. Kuitenkin on edelleen paljon ohjelmistoja, jotka eivät tunnista BOM:ia. Kun tutkin Firefoxia, tiesin, että Firefoxin varhaisissa versioissa laajennuksissa ei voinut olla BOM:ia, mutta Firefox 1.5 ja uudemmat versiot ovat alkaneet tukea BOM:ia. Nyt sain tietää, että PHP ei myöskään tue BOM:ia.
PHP suunniteltiin ottamatta huomioon BOM:ia, mikä tarkoittaa, ettei se jätä huomiotta BOM:n kolmea merkkiä UTF-8-koodatun tiedoston alussa. Koska sen täytyy olla Kuten näin Bo-Blogin wikissä, Bo-Blog, joka myös käyttää PHP:tä, on myös BOM:n ongelma. Toinen ongelma mainitaan: "COOKIE-lähetysmekanismin rajoitusten vuoksi tiedostoissa, joilla on jo BOM näiden tiedostojen alussa, COOKIEita ei voida lähettää (koska PHP on jo lähettänyt tiedoston otsikon ennen COOKIEn lähettämistä), joten kirjautumis- ja uloskirjautumistoiminnot ovat virheellisiä. Kaikki toiminnot, jotka perustuvat COOKIEihin ja SESSIONS-tiedostoihin, ovat virheellisiä. Tämän pitäisi olla syy WordPressin taustalla olevaan tyhjään sivuun, koska kaikissa suoritetuissa tiedostoissa on BOM, ja kaikki kolme merkkiä lähetetään, mikä aiheuttaa evästeisiin ja istuntoihin perustuvan toiminnallisuuden epäonnistumisen.
Ratkaisu on tallentaa tiedosto ASCII-koodina, jos se sisältää vain englanninkielisiä merkkejä (tai ASCII-koodauksen merkkejä). Jos käytät editoria, kuten UE:tä, klikkaa File->Convert->UTF-8 to ASCII tai valitse ASCII-koodaus Save As -kohdasta. Jos se on rivi, joka päättyy DOS-muotoon, voit avata sen Notepadilla, klikata Save As ja valita ASCII-koodauksen. Jos siinä on kiinalaisia merkkejä, voit käyttää UE:n tallennusfunktiota ja valita "UTF-8 no BOM". Katso alla olevaa kuvaa:
Bo-Blog-wikin ohjeiden mukaan: Editplus täytyy tallentaa gb-muodossa ja sitten UTF-8-muodossa. Ole kuitenkin varovainen tehdessäsi tätä, sillä kaikki merkit, jotka eivät sisälly GBK-koodaukseen, katoavat. Jos tiedostossa on joitakin ei-kiinalaisia merkkejä, älä käytä tätä menetelmää. (Tästä pienestä näkökulmasta UE - UltraEdite-32 on todellakin paljon parempi kuin Editplus, Editplus on liian kevyt)
Toinen tapa, jonka löysin, on käyttää WordPressin tarjoamaa tiedostoeditoria. Tämä menetelmä ei ole rajoitettu, eikä erityistä editoria tarvitse ladata – loppujen lopuksi kaikki käyttävät WordPressiä. Ensiksi ota käyttöön tiedoston kirjoitusoikeus, jota haluat muokata ftp:ssä, sitten syötä WordPressin tausta - > hallinta-> tiedostoeditori, syötä polku tiedoston muokkaamiseen ja klikkaa Muokkaa tiedostoa. Et näe ensimmäisiä kolmea merkkiä muokkausnäytössä, mutta se on ihan ok, aseta kursori koko tiedoston ensimmäisen merkin eteen ja paina Backspace-näppäintä. OK, klikkaa Päivitä tiedosto, päivitä se ftp:llä, näet että tiedosto on 3 tavua pienempi ja olet valmis.
Lopuksi, tämä on iso ongelma, ja kaikki, jotka haluavat kirjoittaa omia lisäosiaan, muokata muiden lisäosia omaan käyttöön ja haluavat muokata mallipohjaa (arvioiden mukaan kaikkien tarvitsevan), on parasta ymmärtää yllä oleva tieto, jotta ei hämmentyisi, kun ongelmia ilmenee.
|