HTMLコードをJavaScriptエスケープに変更するために私がやっていることは次のとおりです。
string input = "श्रीगंग..."
var output = Regex.Replace(input, @"&#([0-9]*);",
x => String.Format("\\u{0:X4}", int.Parse(x.Groups[1].Value)));
or alternately;
var output = String.Join("", WebUtility.HtmlDecode(input)
.Select(x => "\\u" + ((int)x).ToString("X4")));
しかし今、私はこのデータをwcfサービスを介してjson形式で送信しているときに問題があります。それに応じて値を取得しています。しかし、この形式の出力変数だけが間違っています:
\\u0026\\u0023\\u0032\\u0033\\u0033\\u0037\\u003B\\u0026\\u0023\\u0032\\u0033\\u0037\\u0035\\u003B\\u0026\\u0023\\ u0032\\u0033\\u0033\\u0038\\u003B\\u0026\\u0023\\u0032\\u0033\\u0036\\u0034\\u003B\\u0020\\u0026\\u0023\\u0032\\u0033\ \u0032\\u0035\\u003B\\u0026\\u0023\\u0032\\u0033\\u0035
「\\u0026」は必要ありませんが、 「\u0026」のみが応答として必要です。私は次のようなすべてを試しました:
output.Replace("\\","'\'");
output.Replace("\\",@"\");
しかし、ここでは機能しませんでした。
ここに私のWCFサービスメソッドがあります:
[OperationContract(Name = "GetByCity")]
[WebInvoke(Method = "GET", UriTemplate = "/GetByCity/DeviceType={DeviceType}&CityId={id}&Limit={limit}", BodyStyle = WebMessageBodyStyle.WrappedRequest,
RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
NewsList GetByCity(string DeviceType, string id, string limit);
今、utf-8 形式を定義する場所がわかりません。