-2

mysql クエリを実行すると、以下のユニコード文字列を取得しました。

\u30ad\u30e3\u30f3\u30bb\u30eb

上記の文字列を印刷しようとしましたが、これは正しく utf 文字に変更されていません。そこで、「\」を「\」に置き換えてみました。

str.replace("\\\\","\\"); //正しく置換されていません

私のシナリオでは、置換機能が機能しません。

私の場合、「\\」を「\」に置き換えるにはどうすればよいですか。

私の英語でごめんなさい!!

何か案が ?

4

2 に答える 2

2

文字列は不変です。一度作成すると変更できません。メソッドから返されたオブジェクトをreplace()新しい String 参照に割り当てる (または同じ参照を使用する)必要があります。

str = str.replace("\\\\","\\");
于 2012-04-04T10:28:32.147 に答える
1

Stringのようなリテラル"\u30ad\u30e3\u30f3\u30bb\u30eb"は、Java コンパイラによって Unicode 文字列 (「キャンセル」) に変換されます。つまり、ソース ファイルに入力した文字列に対してのみ機能します。

\u30ad\u30e3\u30f3\u30bb\u30ebデータベースからstring: を受け取った場合\、他の文字として扱われます。削除すると、次のようになりますu30adu30e3u30f3u30bbu30eb

\u????代わりに、a 内のすべてのエスケープ シーケンス ( )を見つけStringて実際の文字に変換するメソッドを作成する (または既存のメソッドを使用する) 必要があります。たとえば、ここを参照してください。

于 2012-04-04T12:19:29.110 に答える