webForumDet fria alternativet

Teckenstrul, form inputs, php/MySQL

Webbutvecklingur Webbutveckling - Övrigt

8 svar · 783 visningar · startad av Danne V

Danne VMedlem sedan aug. 20068 090 inlägg
#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.

effataMedlem 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...

Danne VMedlem 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?

effataMedlem sedan apr. 2008137 inlägg
#4

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

Danne VMedlem sedan aug. 20068 090 inlägg
#5

effata skrev:

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

Tack! Ska testa detta...

effataMedlem sedan apr. 2008137 inlägg
#6

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

Danne VMedlem 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.

Danne VMedlem 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...

TroxyMedlem 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å.

130 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)