FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Medlem
|
Ska sätta upp en liten sajt som ska ha möjlighet att utökas till flera språk och tänker bygga rätt från början.
Texterna för sidorna kommer att administreras via en adminsida där respektive land översätter de engelska texterna till lokalt språk. Vad är att föredra för att slippa problem med "konstiga" tecken som finns i tex polska, slovenska, kinesiska etc? Dels vad det gäller inställningar för MySQL men också det som skickas från formuläret (accept-charset?), om textsträngarna som ska sparas ned bör encodas på något sätt samt vad som är att föredra då sidorna ska visas, för att hantera så många språkvarianter som möjligt. Någon som har några bra regler att tänka på eller någon länk till en guide? Tack på förhand! |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Klarade millennium-buggen
|
Detta (utf8/teckenhantering) står det rätt bra om i boken "building scalable websites" (ISBN 0596102356). Sen så skulle jag väl rekommendera att om du nu skall göra "rätt" så använder du gettext (http://www.gnu.org/software/gettext/) istället för ett eget system.
|
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Mycket flitig postare
|
Citat:
Kod:
CREATE DATABASE multikulti DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; Kod:
SET NAMES 'utf8' http://www.mysql.se/doc/refman/5.0/en/charset.html accept-charset har ingen praktisk betydelse, encodingen på sidan avgör: Kod:
<meta http-equiv="content-type" content="text/html;charset=utf-8"> Se också till att det serversidespråk som du använder hanterar utf-8 riktigt. Exempelvis med mb_string i php (sätt internal encoding utf-8). Om du tänker använda php så kolla: http://de3.php.net/manual/en/ref.mbstring.php (och se till att din server/ditt webbhotel har mb_string installerat) |
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Bara ett inlägg till!
|
Citat:
|
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Klarade millennium-buggen
|
kullervo, jag tror det mesta sånt går, men inte i phps implementation av gettext. gettext är bra mycket mera avancerat på systemnivå än vad php har valt att implementera. martine's inlägg var också mycket bra, det sammanfattar bokens innehåll om det hela rätt bra. MySQL5 och rätt collations samt även tänka på att inte använda varchar som fälttyper. En fallgrop är som jag har förstått det att vissa browsers skiter i att skicka form-content som utf-8 även om man har specat det, så man måste hålla ett litet öga öppet för det.
|
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Medlem
|
Citat:
|
||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Klarade millennium-buggen
|
Boken säger såhär (jag är tyvärr ingen överdriven hejare på detta själv):
"UTF-8 can be binary sorted and comes out in code point order. This means that the regular MySQL sort works fine with your UTF-8 data, as long as you define your columns with the BINARY attribute (for CHAR and VARCHAR columns) and use BLOB instead of TEXT types." Det är ju en klassiker annars att utf-8 data inte sorterar nåt vidare.. men om om man kör med mb_*, mysql5 och ovanstående tips så skall det tydligen lösa sig. Jag är än så länge en av dem som martine säger "inte riktigt vågar ta steget fullt ut till utf-8".. men det kommer väl :P För att svara på din fråga: du kan använda VARCHAR, men med attributet BINARY. Det är TEXT som skall vara BLOB (där jag rörde ihop det för mig). |
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Medlem
|
Aha, tack för svaret. Har undrat ibland när man ska använda binary på varchar fält men inte orkat kolla upp det.
|
||
![]() |
![]() |
![]() |
#9 | |||
|
||||
Mycket flitig postare
|
Citat:
Blanda inte iso och utf-8 på en site och ha alltid metatagg som anger utf-8. Citat:
Citat:
![]() ![]() |
|||
![]() |
![]() |
Svara |
|
|