我有一个向远程数据库发送请求的小方法,我们使用这两行:
var encoding = new ASCIIEncoding();
byte[] data = encoding.GetBytes(jsonRequest);
using (var newStream = request.GetRequestStream())
newStream.Write(data, 0, data.Length);
当我直接使用测试门户发送请求时,正确保存法语字符并正确检索,当使用我们的应用程序发送时,服务器将其读取为? (这里的法语字符是éà等...) 我试图调试应用程序,发现数据(jsonRequest)在byte []数据点有效。
我在问这个编码是否有可能使角色失真?当然,这是别人的代码,没有解释为什么这样做我没有什么选择。 任何帮助表示赞赏。
TA
答案 0 :(得分:0)
我之前遇到过这种情况。在我们的例子中,这是因为,即使从服务器正确发送了chracters,它也发送了已解析的版本 - 实际上,它们丢失了编码。所以我们在JS的客户端有一个辅助功能,在HTML渲染之前再次对chracters进行编码。
答案 1 :(得分:0)
是的,这可能是您正在使用的编码。 ASCII起源于美国,并不包括欧洲口音。如果您不使用任何编码会怎样?我从来没有为JSON请求添加任何字符编码。如果我必须选择和编码,utf-8将是最好的。
您的服务器和网页是否配置为使用utf-8?