mysql クエリを実行すると、以下のユニコード文字列を取得しました。
\u30ad\u30e3\u30f3\u30bb\u30eb
上記の文字列を印刷しようとしましたが、これは正しく utf 文字に変更されていません。そこで、「\」を「\」に置き換えてみました。
str.replace("\\\\","\\"); //正しく置換されていません
私のシナリオでは、置換機能が機能しません。
私の場合、「\\」を「\」に置き換えるにはどうすればよいですか。
私の英語でごめんなさい!!
何か案が ?
mysql クエリを実行すると、以下のユニコード文字列を取得しました。
\u30ad\u30e3\u30f3\u30bb\u30eb
上記の文字列を印刷しようとしましたが、これは正しく utf 文字に変更されていません。そこで、「\」を「\」に置き換えてみました。
str.replace("\\\\","\\"); //正しく置換されていません
私のシナリオでは、置換機能が機能しません。
私の場合、「\\」を「\」に置き換えるにはどうすればよいですか。
私の英語でごめんなさい!!
何か案が ?
文字列は不変です。一度作成すると変更できません。メソッドから返されたオブジェクトをreplace()新しい String 参照に割り当てる (または同じ参照を使用する)必要があります。
str = str.replace("\\\\","\\");
Stringのようなリテラル"\u30ad\u30e3\u30f3\u30bb\u30eb"は、Java コンパイラによって Unicode 文字列 (「キャンセル」) に変換されます。つまり、ソース ファイルに入力した文字列に対してのみ機能します。
\u30ad\u30e3\u30f3\u30bb\u30ebデータベースからstring: を受け取った場合\、他の文字として扱われます。削除すると、次のようになりますu30adu30e3u30f3u30bbu30eb。
\u????代わりに、a 内のすべてのエスケープ シーケンス ( )を見つけStringて実際の文字に変換するメソッドを作成する (または既存のメソッドを使用する) 必要があります。たとえば、ここを参照してください。