我编写了一个 Ajax 请求来发布数据。webservice XML 信息如下所示:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<AddNewStory xmlns="http://X.X.X.X/StoryForMac/">
<StoryID>+story_id+</StoryID>
<UserName>+User_Name+</UserName>
<Story_CreateTime>+Story__CreateTime+</Story_CreateTime>
<StoryName>+Story_Name+</StoryName>
</AddNewStory>
</soap:Body>
</soap:Envelope>
$.ajax({
type: "POST",
url: webServiceAddNewStoryImgUrl,
contentType: "text/xml",
dataType: "xml",
data: soap_add_new_story_image,
success: process_update_pic_success,
error: process_add_new_img_Error
});
我从文本文件中获取中文字符串,将其分配给变量 Story_Name。之后,我向webservice发出请求,但中文字符串显示????????。无论我输入什么,它都只是显示中文字符串“??????”....
据我所知,在 web 服务上声明的字符串(用 C# 实现)被编码为 Unicode,而 javascript 字符串也被编码为 UTF-8(?)。
我不明白为什么会这样。
我做了一个测试:我在webservice上运行调试器,直接输入中文字符串。这一次,它显示正确!
为什么会这样?
ps:我基于Android系统创建应用,使用PhoneGap API读取移动设备上的字符串。
有什么建议吗??
请提供任何帮助或建议。我在这个问题上花了几天时间,尝试了很多方法,但都是徒劳的。