[PHP] Unicode/UTF-8

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hai,

Ik moet voor een klant misschien een site ontwikkelen welke ook o.a. in het japans vertaald zal worden. Nu ben ik nog niet helemaal zeker van hoe dat spul in elkaar steekt. Zover ik weet is UTF-8 een of andere versimpelde implementatie van Unicode, ofzo.. (anyone care to prove me wrong? ;) )
..

Anyway, de vraag is, hoe ga je hier mee om in PHP en MySQL (of misschien PostgreSQL; lijkt daar meer support voor te hebben) ?

Acties:
  • 0 Henk 'm!

  • jochemd
  • Registratie: November 2000
  • Laatst online: 24-08 12:31
UTF-8 is een zogeheten "form-of-use" van unicode. Je kan unicode namelijk op verschillende manieren encoderen en UTF-8 is een vorm waarin er voor is gekozen om de lage ASCII karakters als 1 byte op te slaan en 'lastige' karakters uit Japans/Chinees etc. met meer bytes. Zeer efficient voor texten die veel westerse content hebben en een beperkte hoeveelheid 'vreemde' karakters, en redelijk efficient voor texten met veel 'vreemde' karakters.

Bij mijn weten support MySQL geen unicode, PostgreSQL doet dat wel.

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Volgens mij is UTF-8 een bepaalde encodering om Unicode in tekst te verwerken. Unicode is een character set, UTF-8 de encoding. (meer)

Maar nou ben ik helemaal geen crack op dit gebied, dus misschien moet je wel helemaal niet naar me luisteren ;)

voorstel je topictitel te wijzigen in "[PHP] Unicode? multi-language support (oa. japans)"

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

PHP heeft _geen_ unicode support, tenzij je de unicode beschouwt als binare data. Dat bekent global dat al je teksten (buiten HTML) uit een database moeten komen met UTF-support. Deze database kan natuurlijk file-based zijn.

Kijk hier eens

[gok]
UTF16 is eenvoudiger te implementeren dan UTF8: Bij UTF 16 zijn alle characters twee bytes, terwijl bij UTF-8 sommige karakters 2 bytes zijn, sommige 1, en sommige zelfs 3 of vier als ik het me goed herinner.
[/gok]
Ik had ongelijk.

Localhost, sweet localhost


Verwijderd

Topicstarter
PHP lijkt toch iets van "multi-byte" support te hebben, getuige de deze link; ook is er utf8_encode en utf8_decode.

Die bovenste lijkt iets te kunnen doen met japans (maar dat lijkt weer 3 verschillende charsets te hebben :? ) .. Zal google eens lastig gaan vallen, want dat had ik nog niet gedaan... *schaam* :-)

[ Voor 0% gewijzigd door Verwijderd op 21-11-2002 09:34 . Reden: Gruwelijke fout bekennen ]


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Wat noem je Unicode support ?
strcoll lijkt geen support te hebben voor multi-byte strings, maar 't linkje levert in 2 minuten een heleboel andere mb_ equivalenten op
( http://www.php.net/manual/en/ref.mbstring.php natuurlijk )

Japans heeft 3 verzamelingen van karakters, Kanji (uit Chinees, paar duizend, teken=woord), Hiragana ( tientallen, teken=lettergreep ) en Katakana ( zelfde lettergrepen als Hiragana, voor oa. buitenlands woorden ). Unicode ( 1 karakter encoding ) bevat al deze karakters. Dat maakt voor jou dus niet uit; de japanse vertaler geeft je gewoon een verzameling unicode karakters, en jij hoeft niet te weten welke 3 fonts daarvoor nodig zijn.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
*kick*

Voor het geval iemand nog iets 'handigs' te melden heeft.. ;)
Pagina: 1