Java の URL が文字化けする場合の解決策: (推奨: java ビデオ チュートリアル )
1. 文字列をトランスコードします: newString(“xxxxx ". getBytes("iso-8859-1"),"utf-8")
このトランスコーディング方法には、指定された文字セットを使用してこの String をバイト シーケンスにエンコードし、その結果をファイルに格納するため、大きな欠点があります。新しいバイト配列を取得し、指定された文字エンコーディングを使用して結果のバイト配列をデコードし、新しい String 文字列を構築します。
この場合、すべての漢字をデコードできない状況が発生する可能性があります。このように、前の単語は正常に表示されますが、最後の単語が文字化けする場合があります。
したがって、この方法を使用することはお勧めできません。
2. パラメータを渡す前にトランスコードし、パラメータを受け取った後にトランスコードして戻します。
これを行うには 2 つの方法があります:
最初の方法:
パラメータを渡す前: java.net.URLEncoder.encode("xxxx","utf- 8 ”)、中国語を 16 進文字に変換します。
パラメータを受け取った後: java.net.URLDncoder.decode("xxxx", "utf-8") を使用して 16 進文字を中国語に変換します。
この方法で注意すべき点は、エンコード後に特殊文字が出現するので、その特殊文字を対応する16進数に置き換える必要があることです。 URL パスのパラメータとして特殊文字を渡すと、特殊文字も文字化けしてしまうためです。
2 番目のタイプ:
パラメータを渡す前: encodeURI("xxxx")。
パラメータを受け取った後: java.net.URLDncoder.decode("xxxx", "utf-8") を使用して 16 進文字を中国語に変換します。
このメソッドで注意する必要があるのは、encodeURI を使用してトランスコードした後、特殊文字が表示されることです。このとき、特殊文字をトランスコードする必要があるため、encodeURI を 2 回使用します。
encodeURI(encodeURI(“xxxx”))。
url=encodeURI(url);
String linename = new String(request.getParameter(“name”).getBytes(“ISO-8859-1”),“UTF-8”);
url=encodeURI(encodeURI(url)); //用了2次encodeURI
String linename = request.getParameter(name);
linename = java.net.URLDecoder.decode(linename , “UTF-8”);
java 基本チュートリアル 列に注目してください。
以上がJavaでURLが文字化けする場合の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。