在C#WebApi中,当尝试以json格式接收阿拉伯语数据(通过 Soap UI 发送)时,我收到“???”而不是实际的阿拉伯文字。
URL:
http://localhost:4321/receive/message
Json格式(请求):
{
"message_no";"123",
"user_id":"a123",
"text":"أهلا بك",
}
型号:
public class MessageBody
{
[JsonProperty(PropertyName = "message_no")]
public string MessageNo { get; set; }
[JsonProperty(PropertyName = "user_id")]
public int UserId { get; set; }
[JsonProperty(PropertyName = "text")]
public int Text { get; set; }
}
收到的内容:
MessageNo:123
UserId:a123
文字:??????
答案 0 :(得分:0)
我认为你在服务器端拥有UTF-8的字节,任何客户端代码也可以使用各种字符串编码格式来显示测试。
答案 1 :(得分:0)
将您的字符串传递给此方法。这将返回所需的文本。
public string DecodeEncodedNonAsciiCharacters(string value)
{
return Regex.Replace(
value,
@"\\u(?<Value>[a-zA-Z0-9]{4})",
m =>
{
return ((char)int.Parse(m.Groups["Value"].Value, NumberStyles.HexNumber)).ToString();
});
}
答案 2 :(得分:0)
对于客户端:
仅限于使用HTML网页发布数据。
除了保存文件的UTF-8格式外。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta charset="utf-8" />
对于服务器端:
将以下内容添加到web.config
并将其设置为<system.web>
元素。
<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8"/>