Op mijn website kunnen mensen via javascript tags toevoegen aan items. Dit gaat via http post requests.
Nu heb ik een probleem dat wanneer mensen japanse tags toevoegen, de karakters verkeerd aankomen bij de server.
Als eerste hebben we deze code:
Ik vul bijvoorbeeld dit in als tag:
分別
volgens firebug's javascript debugger zit dit ook in de variabele 'tag'.
Dan krijgen we de functie addTag:
Ook hier is de variabele 'tag' nog correct.
de functie feedbackTag schrijft de tag dan erbij in de lijst met tags op de pagina (dus vanuit de variabele globalTagName, niet vanuit de database!). De tag ziet er dan in de pagina ook nog correct uit.
Wanneer je dan echter refresht, en de tag dus vanuit de database getoond word, ziet hij eruit als:
分別
Dus hij is de codering een beetje kwijt geraakt?
Wanneer ik dan via firebug bekijk wat hij naar de server gestuurd heeft, staat daar inderdaad ook 分別. Dus het gaat al mis in de javascript.
Hoe kan ik dit probleem verhelpen? Ik heb gezocht op een goede javascript functie om het naar entities om te zetten (utf-8 via ascii), maar die zijn er blijkbaar niet?
Of valt het misschien te verhelpen via php?
Nu heb ik een probleem dat wanneer mensen japanse tags toevoegen, de karakters verkeerd aankomen bij de server.
Als eerste hebben we deze code:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| function promptTag(scene_id) { var tag = prompt(unescapeHtml(text.enter_a_new_tag)+". " + unescapeHtml(text.please_only_use_words)+":", ""); if (tag === null || tag === "") { return; } else { addTag(scene_id,tag); } } |
Ik vul bijvoorbeeld dit in als tag:
分別
volgens firebug's javascript debugger zit dit ook in de variabele 'tag'.
Dan krijgen we de functie addTag:
JavaScript:
1
2
3
4
5
6
7
8
9
10
| function addTag(scene_id,tag) { connection_tag = ajaxRequest(); globalTagSceneID = scene_id; globalTagName = tag; connection_tag.onreadystatechange = feedbackTag; connection_tag.open('post','add_tag.php', true); connection_tag.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); connection_tag.send('scene_id='+scene_id+'&tag_name='+tag); } |
Ook hier is de variabele 'tag' nog correct.
de functie feedbackTag schrijft de tag dan erbij in de lijst met tags op de pagina (dus vanuit de variabele globalTagName, niet vanuit de database!). De tag ziet er dan in de pagina ook nog correct uit.
Wanneer je dan echter refresht, en de tag dus vanuit de database getoond word, ziet hij eruit als:
分別
Dus hij is de codering een beetje kwijt geraakt?

Wanneer ik dan via firebug bekijk wat hij naar de server gestuurd heeft, staat daar inderdaad ook 分別. Dus het gaat al mis in de javascript.
Hoe kan ik dit probleem verhelpen? Ik heb gezocht op een goede javascript functie om het naar entities om te zetten (utf-8 via ascii), maar die zijn er blijkbaar niet?
Of valt het misschien te verhelpen via php?
IF IF = THEN THEN THEN = ELSE ELSE ELSE = IF;