Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 6768|Odpověď: 0

Problém kódování UTF-8 BOM je podrobně popsán

[Kopírovat odkaz]
Zveřejněno 30.10.2014 17:38:44 | | |
Problémy s UTF-8 BOM, na které si dát pozor ve WordPressu
Velmi brzy jsem narazil na problém, tedy po instalaci určitého pluginu se po kliknutí pro aktivaci objevila bílá obrazovka. Nikdy jsem nepřišel na to, co je důvodem, a předchozí řešení je, že pokud soubor neobsahuje čínské znaky, přenese se soubor přímo do ASCII kódu, což se obecně dá vyřešit. Když jsem dnes koupil blog pro bratra, stala se tato situace znovu. Po dlouhém pátrání jsem konečně našel odpověď.

V Unicode specifikaci existuje koncept BOM. BOM - Byte Order Mark, což je značka pořadí bajtu. Poznámku o BOM najdete zde:

V kódu UCS je znak nazvaný "ZERO WIDTH NO-BREAK SPACE", který je kódován jako FEFF. FFFE je v UCS neexistující postava, takže by se neměla objevovat v samotném přenosu. Specifikace UCS doporučuje přenést znak "ZERO WIDTH NO-BREAK SPACE" před přenosem byte streamu. Tímto způsobem, pokud přijímač přijme FEFF, znamená to, že bajtový proud je Big-Endian; Pokud je přijato FFFE, znamená to, že bajtový proud je Little-Endian. Proto se znak "ZERO WIDTH NO-BREAK SPACE" nazývá také BOM.

UTF-8 nevyžaduje BOM pro označení pořadí bajtů, ale může použít BOM k označení způsobu kódování. UTF-8 kódování znaku "ZERO WIDTH NO-BREAK SPACE" je EF BB BF. Takže pokud přijímač přijme bajtový proud začínající na EF BB BF, ví, že jde o kódování UTF-8.

Windows používá BOM k označení, jak jsou textové soubory kódovány.

Kromě toho FAQ-BOM na webu Unicode podrobně vysvětluje BOM. Oficiální přirozená autorita, ale v angličtině, se zdá být pracnější.

V souboru kódovaném v UTF-8 zabírá BOM tři bajty. Pokud použijete Notepad k uložení textového souboru jako kódování UTF-8, otevřete soubor pomocí UE a přepněte na hexadecimální editační stav, abyste na začátku viděli FFFE. To je dobrý způsob, jak identifikovat soubory kódované UTF-8, software používá BOM k identifikaci, zda je soubor kódován UTF-8, a mnoho softwaru také vyžaduje, aby importovaný soubor měl BOM. Nicméně stále existuje spousta softwaru, který BOM nerozpoznává. Když jsem zkoumal Firefox, věděl jsem, že v raných verzích Firefoxu rozšíření nemohla mít BOM, ale Firefox 1.5 a pozdější verze začaly BOM podporovat. Teď jsem zjistil, že PHP také nepodporuje BOM.

PHP bylo navrženo bez zohlednění BOM, což znamená, že neignoruje tři znaky BOM na začátku souboru kódovaného UTF-8. Protože musí být v
Jak jsem viděl na Bo-Blog wiki, Bo-Blog, který také používá PHP, má také problémy s BOM. Další problém je zmíněn: "Kvůli omezení mechanismu odesílání COOKIE nelze v souborech, které již mají na začátku těchto souborů BOM, COOKIE odeslat (protože PHP již odeslal hlavičku souboru před odesláním COOKIE), takže funkce přihlášení a odhlášení jsou neplatné. Všechny funkce, které spoléhají na COOKIES a SEANCE, jsou neplatné. To by měl být důvod prázdné stránky na pozadí WordPressu, protože všechny spuštěné soubory obsahují BOM a všechny tři znaky budou odeslány, což způsobí selhání funkcí závislých na cookies a relacích.

Řešením je uložit soubor jako ASCII kód, pokud obsahuje pouze anglické znaky (nebo znaky v ASCII kódování). Pokud používáte editor jako UE, klikněte na File->Convert->UTF-8 na ASCII, nebo vyberte ASCII kódování v Save As. Pokud je to řádek končící ve formátu DOS, můžete ho otevřít v Notepadu, kliknout na Uložit jako a vybrat ASCII kódování. Pokud obsahuje čínské znaky, můžete použít UE's save jako funkci a vybrat "UTF-8 no BOM". Podívejte se prosím na obrázek níže:

Podle instrukcí z Bo-Blog wiki: Editplus musí být uložen jako GB a poté jako UTF-8. Buďte však opatrní, protože všechny znaky, které nejsou zahrnuty v GBK kódování, budou ztraceny. Pokud jsou v souboru nějaké nečínské znaky, tuto metodu nepoužívejte. (Z tohoto malého hlediska je UE - UltraEdite-32 skutečně mnohem lepší než Editplus, Editplus je příliš lehký)

Další způsob, který jsem našel, je použít editor souborů poskytovaný Wordpressem. Tato metoda není omezená a není potřeba stahovat speciální editor, koneckonců všichni používají Wordpress. Nejprve zapněte oprávnění k zápisu souboru, který chcete upravovat, ve FTP, pak zadejte pozadí WordPressu – > > editace, zadejte cestu k úpravě souboru a klikněte na Upravit soubor. První tři znaky v editační obrazovce neuvidíte, ale to je v pořádku, nastavte kurzor před první znak celého souboru a stiskněte klávesu Backspace. OK, klikni na Aktualizovat soubor, obnov ho ve ftp, uvidíš, že soubor je o 3 bajty menší, a hotovo.

Nakonec je to velký problém, všichni, kdo chtějí psát vlastní pluginy, upravovat pluginy jiných pro své potřeby a potřebují upravovat šablonu (což se odhaduje, že bude potřeba každý), je nejlepší rozumět výše uvedeným znalostem, aby nebyli zahlceni při problému.





Předchozí:Sledujte žáky základní školy, jak hrají LOL a zabijí všechno během pár sekund! (Nejnovější hráč Originál)
Další:Luo Yonghao odpověděl, že "hammer mobilní telefony pod 2500 jsou vnoučata"
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com