7

protobuf メッセージに非 ASCII 文字を含む文字列が含まれている場合、次のmessage.toString()ようなものを返します

alarm {
  message: "\320\227\320\260\320\262\320\265\321\200\321\210\320\265\320\275\320\270\320\265 \321\201\320\262\321\217\320\267\320\270 \321\201 mzta1."
}

ログにキリル文字を含む文字列を表示したいと思います。これを行う簡単な方法はありますか?

4

3 に答える 3

3

2.5.0以降、ありますTextFormat.printToUnicodeString

于 2013-08-20T06:40:29.070 に答える
1

クラス TextFormat::Printer にはメソッド SetUseUtf8StringEscaping があります。

// Set true to output UTF-8 instead of ASCII.  The only difference
// is that bytes >= 0x80 in string fields will not be escaped,
// because they are assumed to be part of UTF-8 multi-byte
// sequences.
void SetUseUtf8StringEscaping(bool as_utf8)
于 2013-08-19T14:43:51.563 に答える
1

私が見つけた唯一の方法 - com.google.protobuf.TextFormat の一部をコピーし、printFieldValue() メソッドで文字列エスケープを削除します。

于 2012-09-19T16:19:05.297 に答える