Hallo,
Via een formulier krijg ik data binnen die opgeslaan moet worden in een XLM-bestand. Naast gewone ASCII-input kan de invoer ook bestaan uit Russische of Griekse tekens.
Ik slaag er niet in de karakters correct in de xml te zetten.
- de pagina's en de form staan op utf-8
- de xml staat ook in utf-8 (en bevat zelf al speciale tekens)
... resultaat is telkens dat er in de xml iets terug te vinden is als "Κανάλι μνήμης Κανάλι μνήμης" ipv "Κανάλι μνήμης Κανάλι μνήμης ", terwijl die karakters wel perfect mogelijk zijn in de xml
Heeft er iemand een idee wat er misloopt?
alvast bedankt,
Benedikt Beun
Via een formulier krijg ik data binnen die opgeslaan moet worden in een XLM-bestand. Naast gewone ASCII-input kan de invoer ook bestaan uit Russische of Griekse tekens.
Ik slaag er niet in de karakters correct in de xml te zetten.
- de pagina's en de form staan op utf-8
- de xml staat ook in utf-8 (en bevat zelf al speciale tekens)
HTML: pagina.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <form name="frm" action="save.asp" method="post" accept-charset="UTF-8"> <p> <input type="text" name="espanol" value="Tecla de Emergencia"> <input type="text" name="russian" value="Клавиша сигнала тревоги"> <input type="text" name="finnish" value="Hälytysnäppäin"> <input type="text" name="greek" value="Πλήκτρο Ειδοποίησης"> </p> <p><input type="submit" value="save"></p> </form> </body> </html> |
XML: list.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| *** opmerking: in het eigenlijke xml-document staan de vreemde karakters als karakter geschreven ipv als code, maar GoT neemt ze hier blijkbaar niet... *** <translations> <usedbatteries type="text"> <english>Used batteries</english> <deutsch>gebrauchte Batterien</deutsch> <francais>Piles usées </francais> <espanol>Baterías usadas</espanol> <italiano>Batterie scariche</italiano> <russian>Использованные батареи</russian> <polish>Zużyte baterie</polish> <svenska>Använda batterier</svenska> <dansk>Brugte batterier</dansk> <norsk>Brukte batterier</norsk> <finnish>Käytetyt akut</finnish> <nederlands>Gebruikte batterijen</nederlands> <portuguese>Pilhas usadas</portuguese> <greek>Χρησιμοποιημένες μπαταρίες</greek> </usedbatteries> </translations> |
ASP: save.asp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| <%@ Language=VBScript %> <% option explicit %> <% dim XML, xField, xTalen, xTaal, xSub Set XML = Server.CreateObject("Msxml2.DomDocument") XML.async = false if XML.Load(server.mappath("list.xml")) then ' ... set xTalen = overzicht talen ' ... set xField = juiste veld of nieuw veld for each xTaal in xTalen set xSub = xField.selectSingleNode(xTaal.nodeName) if xSub is nothing then set xSub = xml.createElement(xTaal.nodeName) xField.appendChild(xSub) end if ' xSub.text = request.form(xTaal.nodeName) xSub.text = "Κανάλι μνήμης Κανάλι μνήμης " ' test *** in bovenstaande tekst staat de string ook in vreemde tekens, maar GoT zet het terug om naar codes... *** next XML.save(server.mappath("list.xml")) end if set xml = nothing 'response.end response.redirect request.form("from") %> |
... resultaat is telkens dat er in de xml iets terug te vinden is als "Κανάλι μνήμης Κανάλι μνήμης" ipv "Κανάλι μνήμης Κανάλι μνήμης ", terwijl die karakters wel perfect mogelijk zijn in de xml
Heeft er iemand een idee wat er misloopt?
alvast bedankt,
Benedikt Beun