2

.NET シリアル化された JSON ドキュメントを CouchBase に挿入しようとしていますが、英語以外の文字で意味不明になります。

私は入れようとしました:

name = " الفورية مترجم نصوص مجاني إلى "

しかし、私は得る:

"name": " ״§„ˆ״±״© …״×״±״¬… †״µˆ״µ …״¬״§† ״¥„‰ ",

CouchBase の管理ページで表示する場合。

解決策はありますか?

ASP.NET 4.5 と最新の CouchBase API を CouchBase 2.0 ベータ版で使用しています。

4

2 に答える 2

1

http://www.couchbase.com/forums/thread/gibrish-non-english-characters-using-c-client-and-coucbase-2-0-betaにも記載されていますが、参照用にここにコピーしました:

こんにちはイダンム

.NET クライアントは、UTF-8 を使用して文字列を格納します。クライアントからのデータが正しく表示されていますか、それとも管理コンソールで文字列が混同されていませんか?

また、Json シリアル化に Newtonsoft.JSON を使用する新しい拡張メソッドを試すこともできます。.NET Couchbase Client Beta には、次のクラスを持つ Couchbase.Extensions があります。

public static class CouchbaseClientExtensions
{
    public static bool StoreJson(this CouchbaseClient client, StoreMode storeMode, string key, object value)
    {
        var json = JsonConvert.SerializeObject(value);
        return client.Store(storeMode, key, json);
    }

    public static T GetJson<T>(this CouchbaseClient client, string key) where T : class
    {
        var json = client.Get<string>(key);
        return json == null ? null : JsonConvert.DeserializeObject<T>(json);
    }
}

使用している拡張機能の Encoding.Default.GetBytes に問題がある可能性があります...

于 2012-11-09T16:35:23.150 に答える
0

私は Couchbase ストレージ システムに詳しくありませんが、テキスト エンコーディングの問題が発生していることは間違いありません。JSON シリアライザーが UTF-8 エンコーディングにシリアライズされていることを確認し、Couchbase 側で UTF-8 エンコーディングを指定していることを確認します。それらの API とストレージ タイプをチェックして、それらが UTF-8 ベースであることを確認してください。

于 2012-11-02T02:38:16.243 に答える