Vra

As alles wat jy sien, is die lelik nie-char bokse, wat gereedskap of strategieë gebruik jy om uit te vind wat verkeerd geloop het?

(Die spesifieke scenario ek is die gesig staar, is nie-char bokse binne'n <select> wanneer dit moet wees wat die Japannese karakters.)

Was dit nuttig?

Oplossing

In die eerste plek, "lelike no-kar bokse" kan nie 'n enkodering probleem wees, hulle mag dalk net 'n teken jy 'n skrif geïnstalleer word dat die karakters kan vertoon in die bladsy nie wees nie.

Die meeste karakter enkodering probleme gebeur wanneer snare word oorgegaan het uit een stelsel na 'n ander. Vir webapps, dit is gewoonlik tussen die leser en die aansoek, tussen die aansoek en die lêerstelsel en tussen die aansoek en die databasis.

So wat jy nodig het om te kyk waar die mis geënkodeerde data vandaan kom, wat karakter enkodering dit by die bron, en wat enkodeer dit word as ontvang. Die beste manier is om te stuur deur middel van karakters wat jy weet die stelsel het probleme met, en ondersoek hulle op elke vlak van die jeug. Wat lyk hulle binne-in die app? In die databasis? Wanneer jy hulle terugbring uit die databasis? Wanneer hulle vertoon in die leser?

Jammer om so algemeen nie, maar die vraag nie veel meer om te werk met gee.

Ander wenke

As die data wat jy stuur aan die leser word verminkte (moji-bak) jy sal kry asblik karakters.Ook, as jy spesifiseer die verkeerde karakter te stel in jou META kop, die leser sal lewer van die bladsy verkeerd, wat veroorsaak dat moji-bak weer, soms in random plekke op die bladsy.

Wanneer die hantering van CJK karakter stelle, moet jy seker wees om te gebruik UTF8 karakter enkodering dwarsdeur die leeftyd van jou program (data stoor, herwinning, data manipulasie in jou kode, vertoon in die browsser ens...)

Wat is UTF8? UTF8 hanteer binêre strome van data, nie snare.Dit beteken dat die bietjie kombinasies kan veranderlike lengte.ASCII karakters het'n vaste lengte van 8 stukkies wat 1 byte, maar UTF8 karakters saamgestel kan word van 6bits, 8bits, 12bits, ens...As sodanig, UTF8 is geneig om dit wat die Japannese noem "mojibake".

As'n kodeerder, uit die databasis te kodebasis aan die leser, jy moet probeer en gebruik UTF8 heeltemal.Vir e-pos wat jy kan gebruik UTF8, maar jy sal waarskynlik vind die meeste e-pos stuur en kliënte is nog steeds die ou en die gebruik van'n mengelmoes van verskillende karakter stelle (bv.ISO9022X).

Databasis Instellings As jy'n mysql gebruiker, dan maak seker dat jy het om te verseker dat alle verbindings na die DB gebruik UTF8, en dat al die tafels/velde gebruik UTF8.By verstek mysql gebruik latyns - (sweeds) karakter stelle.Diegene verknipt swede is lief vir hul sin van humor!!

Die beheer van jou Kodebasis In my ervaring redakteurs soos Notepad++, Notepad2, sito vittoriain, e, ens...al het UTF8 ondersteuning probleme.Hulle het meestal werk, maar sedert hul ontwikkelaars gebruik nie CJK tale hulself, hulle is nie volmaak nie.Kwessies soos die draai af BOM (Byte Einde Punt), verminkte oortjies, swak karakter stel bekering, ens ...al die huidige probleme.

Ek raai die gebruik van'n bewese UTF8 redakteur soos Maruo.Dit is gemaak deur'n Japannese maatskappy, maar daar is'n engelse weergawe (en'n proef weergawe) by http://www.hidemaru.interlink.or.jp/software/

Laastens, jy mag nodig het om te sit jou bron lêers in UTF8.Veral as die kodebasis self het CJK taal snare wat daarin vervat is.

Manipuleer Snare Enige string funksie nodig het om te multibyte veilig.Sien ek het nie sê dubbel-byte.UTF8 is nie'n dubbel byte maar multibyte, afhangende van die totale aantal van stukkies wat gebruik word om te verteenwoordig'n karakter.In PHP jy nodig het om te bel die MB string funksies spesifiek.Ruby en ander tale het meer deursigtig ondersteun, maar wat jy nodig het om te gaan die dokumente vir jou geur van die aansoek bediener!

META Tags Check uit google.mede.jp of yahoo.mede.jp vir hul META kop.Hierdie is webwerwe wat weet hoe om dit behoorlik.Basies die volgende insluit metatag die doucment <HEAD>

charset=utf-8">

Dit is gewoonlik veilig om te meng engels HTML-dokument tipe eienskappe met die bogenoemde karakter te.So die toevoeging van die metatag bogenoemde blyk te werk in'n HTML-dokument wat het:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

E-pos Dit is'n geheel en al anders kan van die wurms.UTF8 werk baie, maar baie ouer Japannese kliënte gebruik ISO2022X meer.Dit is nie die moeite werd wat hier.

Ontfouting UTF8 Kwessies Sodra jy het'n betroubare UTF8 redakteur soos Maruo, kan jy skep statiese bladsye en los jou probleme.

Hoop dit help

Redirect die data op skyf en gebruik 'n Hex Redakteur . Die meeste teksredigeerders / kykers doen hul eie doelskoppe agter die skerms, so dit is moeilik om seker te wees jy sien die data in dit is waar vorm.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top