2017-02-07 4 views
0

В C# WebApi при попытке получить данные на арабском языке в формате json (отправлено через Soap UI) Я получаю «???» вместо фактического арабского текста.C# RESTful WebApi запись данных на арабском языке в json, но получение?

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

Вы используете кодировщик «UTF-8» как на стороне сервера, так и на стороне клиента? –

+0

Прямо сейчас я не использую какой-либо кодировщик, можете ли вы предоставить пример кода о том, как использовать кодировку «UTF-8» на стороне сервера? – FaizanRabbani

+1

Что вы видите, когда вы нажимаете этот URL-адрес из браузера Chrome (если это запрос GET)? – Developer

ответ

0

Я думаю, что у вас есть байты, которые были конвертированы из UTF-8 на стороне сервера, любой код на стороне клиента также может использовать различные форматы кодировки String для отображения теста.

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(); 
        }); 
      } 
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"/> 
Смежные вопросы