Sommige UTF-8 karakters werken niet.

Pagina: 1
Acties:
  • 487 views sinds 30-01-2008
  • Reageer

  • Arcane Apex
  • Registratie: Juni 2003
  • Laatst online: 30-01-2025
Ik gebruik UTF-8 vaak en het heeft nog nooit gefaald, ik gebruikte het tot nu toe altijd voor Japanse karakters en dat werkte foutloos. 日本語は涼しい

Wat ik deed was mijn Apache http-server configgen in httpd.conf zodat het default UTF-8 encoding draait ipv een andere ISO-xxxxx.
Tevens voegde ik altijd de meta-tag toe met de utf-8 charset om nogmaals de encoding te bevestigen.

code:
1
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


En als dat gedaan was kon ik gewoon in een willekeurige HTML-file een Entity plaatsen om het karakter te plaatsen binnen de htmlcode, zodat het later als Japans karakter te zien was.

Maar wat het probleem nu is, is dat ik vandaag andere karakters dan Japanse of Romaanse wilde gebruiken uit de UTF-8 code-charts en hier is waar het misgaat.

Wat je hier ziet is een dingbats schaartje: ✂ //edit: Ok ik zie net dat dit wordt gedisplayed als een blokje in IExplorer, ik gebruik normaal Opera als browser en daarin wordt het wel correct gedisplayed net zoals in Firefox/Mozilla.
(view>encoding staat in IE per lot van rekening zelfs specifiek op UTF-8 ingesteld)

Dingbats is een standaard UTF-8 karaktertype, dat standaard op windows machines geinstalleerd hoort te staan.
Maar dat schaartje is bijna het enige symbooltje dat werkt uit de dingbats char-chart.
Als ik andere symbooltjes uit de UTF-8 dingbats char-chart wil gebruiken, dan verschijnen ze in de uiteindelijke webpage als blokjes of ik krijg een totaal ander karakter te zien dan de bedoeling is...arabisch ofzo.

Waarom is dit...volgens de UTF-8 standaard voldoe ik aan alle voorwaarden om de karakters goed te laten displayen.

1) Server staat default op UTF-8 encoding
2) HTML-file staat via meta-tag ingesteld op de UTF-8 charset
3) Het dingbats font is geinstalleerd.
4) Ik gebruik de juiste entitie codes die www.unicode.org geeft
5) Benodigde languages zijn in windows geinstalleerd om exotische karakters te displayen

Waarom werkt het bij sommige karakters wel en anderen niet.
Om op deze manier een website in meerdere talen op te zetten is zeer frustrerend als veel karakters niet werken.
Ook is het frustrerend dat het vaak wel in Opera en Firefox/Mozilla werkt, maar niet in IE.
En als het al werkt in Opera en Firefox dan werken zoals ik al zei slechts delen van de char-charts.

Kan iemand dit misschien uitleggen...of heb ik iets over het hoofd gezien?

[ Voor 34% gewijzigd door Arcane Apex op 05-08-2004 03:46 ]


  • Arcane Apex
  • Registratie: Juni 2003
  • Laatst online: 30-01-2025
PS: Ik zie dat Tweakers.net onder ISO-8859-15 draait als encoding en die support net als UTF-8 ook slechts delen van de char-charts.
Hetzelfde probleem als met UTF-8 dus...
Kan zijn omdat ISO-8859-15 misschien een subset van UTF-8 is.

[ Voor 19% gewijzigd door Arcane Apex op 05-08-2004 04:00 ]


  • lordsnow
  • Registratie: Maart 2000
  • Laatst online: 02-04 18:35

lordsnow

I know nothing

Deze kan dicht, aangezien je PRECIES hetzelfde gepost heb in een ander deel van het forum:

UTF-8 encoding werkt niet voor alle karakters

Ik stel voor daar verder te gaan, aangezien (denk ik, tenminste) je probleem daar meer thuis hoort.

  • Arcane Apex
  • Registratie: Juni 2003
  • Laatst online: 30-01-2025
Ok...ik wist namelijk niet zeker in welk forum ik dit probleem moest posten.

Verwijderd

Dit forum is beter. UTF-8 is zeker geen subset van iso-8859-1 en ook niet andersom. UTF-8 bevat in weze elk karakter dat door Unicode gestandaardiseerd wordt. Als je de server geconfiguurt hebt is een META element compleet overbodig.

Weet je zeker dat de manier waarop je de karakters invoert correct is? Is dat ook vanaf een pagina die met het UTF-8 charset werkt? Is dat vanuit een editor die UTF-8 ondersteund? Staat die optie ook aangevinkt?

Op Unicode staan 'character references' geen entiteiten. Ik neem aan dat je dan gewoon iets van 'ALT + {nr}' intikt? Of gebruik je echt een character reference: '&#{dec-nr}'/'&#x{hex-nr}'.

Heb je voor IE de benodige ondersteuning gedownload? Kijk anders even hier of je wel de karakters ziet: http://annevankesteren.nl...4/05/unicode#comment-1321

  • tomato
  • Registratie: November 1999
  • Niet online
Arcane schreef op 05 augustus 2004 @ 03:20:
En als dat gedaan was kon ik gewoon in een willekeurige HTML-file een Entity plaatsen om het karakter te plaatsen binnen de htmlcode, zodat het later als Japans karakter te zien was.
Dit is niet de manier waarop je het wilt doen. Wanneer je HTML entities gebruikt in je document voor alle 'vreemde' tekens, heeft het geen zin om unicode te gebruiken, dat werkt net zo goed in iedere andere encoding.
Als je unicode goed gebruikt (en het dus niet alleen aangeeft in de HTTP header zoals Anne zegt, maar ook ervoor zorgt dat je file echt unicode is) voer je direct al je karakters in wanneer je je file wijzigt (je ziet dan dus ook de Japanse tekst correct in de HTML source code).
Wat je hier ziet is een dingbats schaartje: & # 9986 ;
Of dit te zien is hangt alleen af van de client en heeft niet met unicode te maken.

  • Arcane Apex
  • Registratie: Juni 2003
  • Laatst online: 30-01-2025
Ok stel nou dat ik een willekeurig symbool uit deze unicode chart wil kunnen gebruiken op mijn website.

http://www.unicode.org/charts/PDF/U2700.pdf

Hoe moet ik dat precies aanpakken? Ik krijg het zelf namelijk op geen enkele manier voor elkaar.
En zullen clients dit ook kunnen zien? Het is immers Unicode...universal code.

[ Voor 33% gewijzigd door Arcane Apex op 05-08-2004 13:34 ]


Verwijderd

Gewoon een editor gebruiken die Unicode ondersteunt. Ik heb het niet uitgebreid uitgelegd, wat is het probleem? Voorbeelden?

  • Arcane Apex
  • Registratie: Juni 2003
  • Laatst online: 30-01-2025
Anne, als ik UTF-8 karakters copy van je website in Ultraedit (Unicode & UTF-8 compliant) dan displayen ze goed in die editor.
Maar ik kan op geen enkele manier de juiste symbolen uit de chart waarvan ik net de link postte displayen in Ultradit.
Dus kan ik de file ook niet zo editen dat mijn website specifiek deze karakters/symbolen displayen.

[ Voor 7% gewijzigd door Arcane Apex op 05-08-2004 13:41 ]


Verwijderd

ALT + decimale referentie.

Bijvoorbeeld: P; gelijk aan 'ALT + 80' (ALT ingedrukt houden terwijl je 80 indrukt, loslaten klaar).

Zo werkt dat voor alle karakters.

  • Arcane Apex
  • Registratie: Juni 2003
  • Laatst online: 30-01-2025
Dat werkt ook niet, dan wordt alsnog het verkeerde karakter/symbool getoond.
Probeer het maar eens met een willekeurig symbool(bloempje of iets dergelijks) uit deze chart:

http://www.unicode.org/charts/PDF/U2700.pdf

Als je ALT+codeUitDezeChart doet dan alsnog verschijnt niet het juiste symbooltje in je editor.
Althans niet bij mij.

  • André
  • Registratie: Maart 2002
  • Laatst online: 03-04 15:48

André

Analytics dude

Arcane schreef op 05 augustus 2004 @ 14:40:
Dat werkt ook niet, dan wordt alsnog het verkeerde karakter/symbool getoond.
Probeer het maar eens met een willekeurig symbool(bloempje of iets dergelijks) uit deze chart:

http://www.unicode.org/charts/PDF/U2700.pdf

Als je ALT+codeUitDezeChart doet dan alsnog verschijnt niet het juiste symbooltje in je editor.
Althans niet bij mij.
Dan ondersteund je editor dat niet :) Ik gebruik Editplus en die ondersteund ook lang niet alle tekens, de truc die ik dan doe is te kijken hoe een speciaal karakter in UTF-8 opgeslagen wordt en hem dan zo in het bestand te zetten. Voorbeeld: de é word als é opgeslagen, dus in mijn document zet ik dan é

Dan gewoon op alle pagina's de characterset UTF-8 gebruiken :)

[ Voor 5% gewijzigd door André op 05-08-2004 14:55 ]


Verwijderd

Ik denk dat het probleem eerder is dat Unicode de hexadecimale referentie neerzet in plaats van de decimale. (Zie ook de letters die bij een aantal karakters voorkomen.)

Eerst even omrekenen zou ik zeggen :-)

UltraEdit, iig mijn versie, gaat redelijk met UTF-8 om, behalve als het om Japanse karakters e.d. gaat, die doe ik meestal via een web editor (lees: textarea op een pagina met de volgende header: 'content-type:text/html;charset=utf-8').

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
als je font dat selected heeft NIET die unicode heeft krijg je niets te zien...

Unicode mag dan wel "UNI" zijn er moet nog steeds iets zijn dat het tekent. Ie Fonts... Ik krijg op deze bak niets van Japanese (wel hindi blijkbaar).

  • tomato
  • Registratie: November 1999
  • Niet online
Controleer even met wat characters die je editor sowieso aan kan of je setup wel goed is:

Kopieer de i18n string van deze pagina (onder de derde paragraaf), plak het in je HTML document, save je HTML document met UTF-8 encoding en bekijk het resultaat in je browser.

Wees er zeker van dat je browser de pagina ook als UTF-8 ziet (anders zit er iets in je headers of je meta-tag niet goed). In Mozilla 'view page info' (bij debuggen is bijvoorbeeld de livehttpheaders extension ook heel handig).

Als dat allemaal goed is en je krijgt de andere karakters (japans, arabisch, whatever) er niet in, dan ligt dat (volgens mij) aan je editor.

  • André
  • Registratie: Maart 2002
  • Laatst online: 03-04 15:48

André

Analytics dude

Verwijderd schreef op 05 augustus 2004 @ 15:00:
UltraEdit, iig mijn versie, gaat redelijk met UTF-8 om, behalve als het om Japanse karakters e.d. gaat, die doe ik meestal via een web editor (lees: textarea op een pagina met de volgende header: 'content-type:text/html;charset=utf-8').
Ik misbruik mijn gastenboek hier altijd voor :P

  • BetuweKees
  • Registratie: Januari 2003
  • Laatst online: 22:34

BetuweKees

Flipje uit Tiel

idd, zoals boven al gezegd, wat ik zelf altijd doe in ultra-edit:

- file > conversions > ASCII to UTF-8
- view > set font.. > Arial Unicode MS

en lekker tikken maar..


maar editen in een textbox op html pagina is ook een optie idd :)

Through meditation I program my heart to beat breakbeats and hum basslines on exhalation -Blackalicious || *BetuweKees was AFK; op de fiets richting China en verder


  • Arcane Apex
  • Registratie: Juni 2003
  • Laatst online: 30-01-2025
Ik heb het allemaal geprobeerd, alle aanbevelingen en het werkte niet.

1) UltraEdit staat op ASCII > UTF-8
2) Font staat op Arial Unicode MS
3) De hexadecimale waarden uit de charts heb ik omgezet naar decimale waarden en met ALT + xxxxx met de keyboard ingevoerd.

Nog steeds kan ik niet alle symbolen uit die chart gebruiken.
Of de verkeerde karakters worden gedisplayed of warrige ASCII code.

[ Voor 7% gewijzigd door Arcane Apex op 05-08-2004 22:08 ]


  • BetuweKees
  • Registratie: Januari 2003
  • Laatst online: 22:34

BetuweKees

Flipje uit Tiel

heb nog eens geprobeerd met de chars waar je het over hebt; zou best eens kunnen dan Andre gelijk heeft en niet alle codes worden ondersteund door UltraEdit (hoewel hij ze wel kan weergeven)

wat ik gedaan heb om het schaartje te kunnen weergeven was zoals al eerder geopperd werd een numerieke entity aan te roepen (geloof dat je hex 2704 wilde hebben, decimaal is dat 9988, dus entity &#9988;), en vervolgens char vanuit browser window kopieren en over de entity heen zetten (volg je dat?)
op die manier kun je alsnog de chars neer zetten die je er via de ALT methode niet inkrijgt..

hoop dat dat helpt..

Through meditation I program my heart to beat breakbeats and hum basslines on exhalation -Blackalicious || *BetuweKees was AFK; op de fiets richting China en verder


Verwijderd

Dat zijn character references, geen entities ;-)

Anyway, dan kun je net zo goed ✄ (& # x 2 7 0 4;) gebruiken, voor hexadecimale character references.

  • tomato
  • Registratie: November 1999
  • Niet online
Arcane schreef op 05 augustus 2004 @ 22:07:
Ik heb het allemaal geprobeerd, alle aanbevelingen en het werkte niet.
Waarom geef je nou niet even aan wat het resultaat was van mijn vorige aanbeveling ('het werkte niet') :?

Dus: krijg je het woord internationalization (maar dan met vreemde karakters) wel goed te zien in je browser en ziet je browser het document bovendien als UTF-8 (dit laatste is het belangrijkste)?

Verwijderd

Ik heb hier ook problemen mee.

Ik ben bezig een site te ontwikkelen die in +/- 20 talen online moet gaan.
Nu heb ik met een aantal chars problemen...

Even doorlopen wat er gebeurd:
Vertalers voegen een vertaling toe op een pagina
(UTF-8 ( ook via view => encoding))
Deze variabele wordt in een database opgeslagen op deze manier:
$db_txt = urlencode($lang_txt)

Het uitlezen van de vertaling doe ik zo:
$lang_txt = stripslashes(urldecode($db_txt));

Bij het printen van de vertaling treedt het volgende probleem op:
Bij Chinees/Japans/Russisch gaat het goed. Deze tekens komen als
Ӓ in de code te staan.

Maar bij bijvoorbeeld deze chars : á é í õ ¡
gaat het fout.
Wanneer in ik de source van de HTML pagina kijk, staan daar wel gwoon die chars, maar op de site zelf komen de bekende blokjes (�) te staan...

Nu heb ik al redelijk veel geprobeerd om dit op te lossen,
maar ik krijg het niet voor elkaar dat het bij alle talen werkt.

Kan iemand mij hier misschien bij helpen?

Verwijderd

kick

  • Pendaco
  • Registratie: Augustus 2003
  • Laatst online: 22:06

Pendaco

Vogon Poetry FTW!

ik ben niet zo heel erg thuis in die charsets maar hoe worden die é ë enz. ingevoerd?

exact zo; dus als é in de code of op de manier zoals hier wordt gebruikt?

Waarschijnlijk ligt t niet zo voor de hand en gebruik je t al zoals met de laatste (correcte) methode maar toch :P

  • Mischa_NL
  • Registratie: Mei 2004
  • Laatst online: 01-02-2023
UTF-8 is een waardeloze charset als je het mij vraagt.
Gebruik gewoon ISO 8859-15.

Verwijderd

Mischa_NL schreef op zondag 02 oktober 2005 @ 22:56:
UTF-8 is een waardeloze charset als je het mij vraagt.
Gebruik gewoon ISO 8859-15.
UTF-8 is slechts een der coderingen van Unicode, wat de karakterset is. Andere coderingen zijn UCS-2, UCS-4 en Punycode. Het voordeel van de karakterset Unicode is dat het mogelijk is om in een webpagina zowel Russisch als Grieks als Japans (bijvoorbeeld) op te nemen, hetgeen je met ISO 8859-15 niet lukt, behalve door het gebruiken van vormen als &#xxxx;. UTF-8 kan echter ook gebruikt worden in 'normale' tekstbestanden, terwijl dat voor &#xxxx; niet het geval is.

[ Voor 55% gewijzigd door Verwijderd op 03-10-2005 10:05 ]


Verwijderd

Verwijderd schreef op vrijdag 30 september 2005 @ 14:20:
Maar bij bijvoorbeeld deze chars : á é í õ ¡
gaat het fout.
Wanneer in ik de source van de HTML pagina kijk, staan daar wel gwoon die chars, maar op de site zelf komen de bekende blokjes (�) te staan...

Nu heb ik al redelijk veel geprobeerd om dit op te lossen,
maar ik krijg het niet voor elkaar dat het bij alle talen werkt.

Kan iemand mij hier misschien bij helpen?
De karakters die je hier als voorbeeld geeft zijn alle onderdeel van de ISO-8859-1 verzameling. Mijn eerste vermoeden op basis hiervan zou dan ook zijn dat je source in feite ISO-8859-1 gecodeerd wordt, waarbij niet-ISO-8859-1 door de juiste &#xxxx; referentie vervangen worden (hetgeen verklaart waarom deze wel werken in een browser) en de overige karakters gewoon blijven staan. Doordat de file nu als UTF-8 aangeboden wordt krijg je deze blokjes. De browser, die de tekenstroom immers als UTF-8 probeert te interpreteren zal zich verslikken in de karakters als á en é, daar deze geen geldige UTF-8-sequentie zijn.

Wellicht dat als je de codering in je browser op Westers, Latin 1, ISO-8859-1 zet, dat je dan alles wel juist ziet.
Pagina: 1