webForumDet fria alternativet

Teckenstrul, form inputs, php/MySQL

Webbutveckling

8 svar · 783 visningar · startad av Danne V

Medlem sedan aug. 20068 090 inlägg
Frågan#1

Har sajt för vietnameser.
Det finns bl.a. omfattande formulär som spänner över flera sidor.
Men när vietnameser skriver förvandlas de flesta av deras "egna" tecken till frågetecken. Vi har bestämt för oss att detta funkade för 2 veckor sen innan vi tog liten semester. Plötsligt, nu när vi kommit tillbaka gör det inte det längre.

Fakta:

Alla sidor och classer sparade som:
Unicode Normalization Form C (Canonical Decomposition följt av Canonical Composition)
Utan BOM
Metatagg utf-8
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Databasen:

Collation utf8_unicode_ci
Type: MyISAM

Kan nån komma med en kvalificerad gissning vad som gått fel?

Red: Jo, all annan vietnamesisk text (i html) funkar galant, precis som det ska vara. Det är BARA i formulären det ballar ur.

Medlem sedan apr. 2008137 inlägg
#2

Skickar dokumentet utf-8 som teckenkodning i header? Om webbservern nyligen konfigurerats om kan det ha ändrats, därför bör man alltid skicka header sitt dokument också, meta-tag räcker inte alltid...

Medlem sedan aug. 20068 090 inlägg
#3

effata skrev:

Skickar dokumentet utf-8 som teckenkodning i header? Om webbservern nyligen konfigurerats om kan det ha ändrats, därför bör man alltid skicka header sitt dokument också, meta-tag räcker inte alltid...

Vad menar du med "header" (jag e ingen php-guru)?
Kan du ge exempel?

Medlem sedan apr. 2008137 inlägg
#4

header('Content-type: text/html; charset=UTF-8');

Medlem sedan aug. 20068 090 inlägg
#5

effata skrev:

header('Content-type: text/html; charset=UTF-8');

Tack! Ska testa detta...

Medlem sedan apr. 2008137 inlägg
#6

Skulle också kunna sätta accept-charset taggen på formulären.
<form accept-charset="UTF-8">

Medlem sedan aug. 20068 090 inlägg
#7

effata skrev:

Skulle också kunna sätta accept-charset taggen på formulären.
<form accept-charset="UTF-8">

Skickas i utf8 så det är det inte, har kollat så det skickas rätt.
Ska testa detta! Tack igen!

RED: Har kollat. Funkar icke. Ajax skickar all data i utf-8.

Medlem sedan aug. 20068 090 inlägg
#8

Problemet löst.
Konstigt nog blev de vietnamesiska tecknen rätt i formulären när vi tog bort
mysql_query( "SET CHARACTER SET utf8", $dbsetting);
ur databaskopplingen...

Medlem sedan mars 20041 505 inlägg
#9

Danne V skrev:

Alla sidor och classer sparade som:
Unicode Normalization Form C (Canonical Decomposition följt av Canonical Composition)

Hm...? Är du verkligen säker på att filerna är sparade med teckenkodningen UTF-8?
Unicode normalization är inget som vanliga dödliga webbutvecklare ska behöva tänka på.

265 ms totalt · 3 externa anrop · v20260731065814-full.767b4345
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)