Ik loop al een poosje tegen het volgende probleem aan. Binnen onze applicatie gaan we de russische taal ondersteunen. Dat werkt allemaal prima totdat we dmv ajax data ophalen om velden in het russich te vullen. Allereerst wat javascript:
Kortgezegd haalt deze code waarde uit velden en stopt ze in een string die ik met de volgende code ophaal:
Ophalen deel van string en opslaan in variable:
De CallbackEventRawMaterial en de CallbackEventRawMatName zijn functies die de juiste gevens uit de database halen en niet van belang voor mijn probleem.
Het probleem is dat wanneer ik via:
De javascript functie CallbackRawMaterial geeft met alert(pageUrl) o.m de variable param (zie code voorbeeld) en wel de juiste russische tekst.

Nu heb ik het een en andere gelezen over karaktercodering en encoding en decoding. In vb.net heb je ook die opties maar na een aantal combinaties met fileencoding en htmlencode etc merk ik geen verschil. Ik heb begrepen dat ajax als karakterset UTF-8 is wat betekend dat mijn tekst word afgebeeld. Het javascript gedeelte beaamt dit ook. Ook de .aspx en de .aspx.vb pagina's zelf zijn in utf-8 opgeslagen.
In mijn web.config file staat het volgende:
Misschien klinkt dit verhaal wat warrig en is de post wat lang maar wat ik eigenlijk wil vragen is hoe ik er voor kan zorgen dat ik op de juiste manier de string "param" in het russisch krijg want ik kan niets meer verzinnen. Het ajax gedeelte beeld de string goed af maar mijn vb.net gedeelte niet. Ik zit nu op mijn werk en kan pas morgenvroeg een aantal dingen hier uit proberen maar heeft iemand een idee?
JavaScript:
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
| <script type="text/javascript"> function CallbackRawmaterial(url, rawmatcode) { var pageUrl = url + "?callback=true&subject=rawmaterial¶m=" + rawmatcode; alert(pageUrl) var xmlRequest = new ActiveXObject("Microsoft.XMLHTTP"); xmlRequest.open("POST", pageUrl, false); xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlRequest.send(null); return xmlRequest; } function getRawMaterialName() { var selectedRawMaterialID = document.all["txtRawMaterialcode"].value; var xmlRawMaterialNameRequest = CallbackRawmaterial("AddSimpleIntake.aspx", selectedRawMaterialID); document.getElementById('txtRawMaterialname').value = xmlRawMaterialNameRequest.responseText; document.getElementById('ddlIntakeposition').focus(); var myResponse = xmlRawMaterialNameRequest.responseText; if (myResponse.length < 1) { window.showModalDialog ('../ModalMessage.aspx?ErrorFrom=ADDDSIGNIN', null, 'status:no;dialogWidth:360px;dialogHeight:145px;dialogHide:true;help:no;scroll:no'); } return false; } </script> |
Kortgezegd haalt deze code waarde uit velden en stopt ze in een string die ik met de volgende code ophaal:
Visual Basic .NET:
1
2
3
4
5
6
| 'toevoegen eigenschappen aan tekstboxen txtRawMaterialcode.Attributes.Add("OnTextChanged", "getRawMaterialName()") txtRawMaterialcode.Attributes.Add("onblur", "getRawMaterialName()") txtRawMaterialname.Attributes.Add("OnTextChanged", "getRawMatCodeName()") txtRawMaterialname.Attributes.Add("onblur", "getRawMatCodeName()") |
Ophalen deel van string en opslaan in variable:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| Private Shadows Function IsCallback() As Boolean If Not Request.QueryString("callback") Is Nothing Then If Request.QueryString("subject") = "rawmaterial" Then Dim strRawmatCode As String = Request.QueryString("param").ToString() Response.Write(CallbackEventRawMaterial(strRawmatCode)) Response.Flush() Response.End() Return True ElseIf Request.QueryString("subject") = "rawmatcodename" Then Dim strRawmatCodeName As String = Request.QueryString("param").ToString() Response.Write(CallbackEventRawMatName(strRawmatCodeName)) Response.Flush() Response.End() Return True End If End If Return False End Function |
De CallbackEventRawMaterial en de CallbackEventRawMatName zijn functies die de juiste gevens uit de database halen en niet van belang voor mijn probleem.
Het probleem is dat wanneer ik via:
Visual Basic .NET:
mijn request uitlees ik een waarde in strRawmatCodeName die gelijk is als 00000?????. Die vraagteksten moeten russische tekst bevatten.1
| Dim strRawmatCodeName As String = Request.QueryString("param").ToString() |
De javascript functie CallbackRawMaterial geeft met alert(pageUrl) o.m de variable param (zie code voorbeeld) en wel de juiste russische tekst.

Nu heb ik het een en andere gelezen over karaktercodering en encoding en decoding. In vb.net heb je ook die opties maar na een aantal combinaties met fileencoding en htmlencode etc merk ik geen verschil. Ik heb begrepen dat ajax als karakterset UTF-8 is wat betekend dat mijn tekst word afgebeeld. Het javascript gedeelte beaamt dit ook. Ook de .aspx en de .aspx.vb pagina's zelf zijn in utf-8 opgeslagen.
In mijn web.config file staat het volgende:
XML:
1
2
3
4
5
| <globalization culture="nl-NL" uiCulture="nl-NL" requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding= "utf-8" responseHeaderEncoding="utf-8" /> |
Misschien klinkt dit verhaal wat warrig en is de post wat lang maar wat ik eigenlijk wil vragen is hoe ik er voor kan zorgen dat ik op de juiste manier de string "param" in het russisch krijg want ik kan niets meer verzinnen. Het ajax gedeelte beeld de string goed af maar mijn vb.net gedeelte niet. Ik zit nu op mijn werk en kan pas morgenvroeg een aantal dingen hier uit proberen maar heeft iemand een idee?
I've been mad for fucking years, absolutely years, been over the edge for yonks.
Vinyl: Discogs