2017-02-07 2 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

ユーザーID:A123

テキスト:??????

+0

サーバー側とクライアント側の両方で 'UTF-8'エンコーダを使用していますか? –

+0

今はエンコーダを使用していません。サーバー側で 'UTF-8'エンコードを使用する方法のサンプルコードを提供できますか? – FaizanRabbani

+1

クロムブラウザからこのURLをヒットしたときに表示されるものは何ですか(これは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"/> 
関連する問題