Как проанализировать шведский язык от JSON с asp classic? - PullRequest
0 голосов
/ 18 мая 2019

Я пытаюсь разобрать строку ответа JSON, полученную из запроса XmlHttp, в asp classic.

Моя проблема в том, что мои шведские символы ä становятся \ xE4, и то же самое с å и ö.

Я использую aspJSON.asp для его анализа, и я устанавливаю response.LCID = 1053 для шведского языка, включая aspJSON.asp и короткую отправку и получаю ответ обратно, как это.

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="../../koppling.asp" -->
<!--#include file="aspJSON1.17.asp" -->
<%Response.LCID = 1053%>
<%
    Response.charset="utf-8"
    Response.CodePage = 65001 
    Set objXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")

        objXmlHttp.Open "GET", url, False
        objXmlHttp.SetRequestHeader "Content-Type", "application/json"
        objXmlHttp.SetRequestHeader "User-Agent", "ASP/3.0"
        objXmlHttp.Send ()


    If objXmlHttp.Status = 200 Then

            jsonstring = CStr(objXmlHttp.ResponseText)
            'response.write jsonstring 
            Set oJSON = New aspJSON

            'Load JSON string
            oJSON.loadJSON(jsonstring)

            'getting the JSON value like this
            fnamn=oJSON.data("payment").item("consumer").item("privatePerson").item("firstName")

И когда в fnamn есть ääö, я не могу вставить его в свою базу данных, потому что я получаю эту ошибку "Неверное строковое значение: '\ xE4gen'" и его, потому что в ответе есть ä.

Так почему же он не преобразует символ, как следует, где я могу ошибаться?

Любой ввод действительно приветствуется, спасибо.

РЕДАКТИРОВАТЬ

ОК, поэтому ядобавил Response.CodePage = 65001 на страницу, и теперь "fnamn" пишет правильно, когда я пишу response.write fnamn

Но я все еще получаю эту ошибку, когда пытаюсь вставить ее в мою базу данных mysql?

Microsoft OLE DB Provider for ODBC Drivers fel '80004005'

[MySQL][ODBC 3.51 Driver][mysqld-5.7.21-log]Incorrect string value: '\xE4gen' for column 'adress' at row 1

И эта часть \xE4 является символом ä.

Иэто дырявый сын в ответе, который я получаю.

{"payment":{"paymentId":"51abf1fa7a014459b1e591dc534e9354","summary":{"reservedAmount":17000,"chargedAmount":17000},"consumer":{"shippingAddress":{"addressLine1":"Centralvägen","receiverLine":"Per Henrik Nordin","postalCode":"83162","city":"ÖSTERSUND","country":"SWE"},"company":{"contactDetails":{"phoneNumber":{}}},"privatePerson":{"firstName":"Per Henrik","lastName":"Nordin","email":"info@manmade.se","phoneNumber":{"prefix":"+46","number":"702315096"}}},"paymentDetails":{"paymentType":"CARD","paymentMethod":"Visa","invoiceDetails":{},"cardDetails":{"maskedPan":"492500******0004","expiryDate":"0320"}},"orderDetails":{"amount":17000,"currency":"SEK","reference":"860153"},"checkout":{"url":"https://www.manmade.se/dumpen/index.asp"},"created":"2019-05-19T04:19:31.5198+00:00","charges":[{"chargeId":"1306fbec6fcd4d68a3681bd16f9de1ec","amount":17000,"created":"2019-05-19T06:19:52.8161+02:00","orderItems":[{"reference":"2-1530","name":"Svart Budda huvud","quantity":1.0,"unit":"st","unitPrice":12800,"taxRate":2500,"taxAmount":4200,"grossTotalAmount":17000,"netTotalAmount":12800}]}]}}

И две проблемы - это addressLine1 и city в приведенном выше, поскольку в них есть ä и Ö.И я получаю значения с этим.

adress=oJSON.data("payment").item("consumer").item("shippingAddress").item("addressLine1")

postadress=oJSON.data("payment").item("consumer").item("shippingAddress").item("city")

И затем я пытаюсь вставить их с этим sql.

sql= "INSERT INTO ordrar(userId,appusers_id,paymentId,produkt_id,produkter_id,ordernummer,antal,pris,fraktkostnad,artikel,texten,artikelnummer,farg,fargnummer,storlek,datum,betald,annonser_id,korttyp,kortnr,chargeId,big_image,big_image2,big_image3,big_image4,big_image5,betaltbelopp,email,fnamn,enamn,adress,postnr,postadress,mobil,annonstyp,annonsstatus) VALUES ("&rs("userId")&","& appusersId &",'"& dibspaymentId &"',"& rs("produkt_id") &","& rs("produkter_id") &",'"& dibsordernr &"',"& rs("antal") &","& rs("pris") &","& rs("fraktkostnad") &",'"& rs("artikel") &"','"& rs("texten") &"','"& rs("artikelnummer") &"','"& rs("farg") &"','"& rs("fargnummer") &"','"& rs("storlek") &"','"& rs("datum") &"','"&betald&"',"& rs("annonser_id") &",'"&dibspaymentMetod&"','"&dibskortNr&"','"&dibschargeId&"','"& rs("big_image") &"','"& rs("big_image2") &"','"& rs("big_image3") &"','"& rs("big_image4") &"','"& rs("big_image5") &"','"& dibssumma &"','"& email &"','"& fnamn &"','"& enamn &"','"& adress &"','"& postnr &"','"& postadress &"','"& mobil &"','"& annonstyp &"','ejgranskad');"

Но так как он правильно отображает ä, когда я пишу response.writeадрес, я не понимаю, почему он говорит, что это Incorrect string value: '\xE4gen' for column 'adress'?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...