ホームページ  >  記事  >  Java  >  JavaでURLが文字化けする場合の解決策

JavaでURLが文字化けする場合の解決策

尚
オリジナル
2019-12-03 10:29:282529ブラウズ

JavaでURLが文字化けする場合の解決策

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”))。

これら 2 つのトランスコーディング方法は非常に便利なので、皆さんも使用することをお勧めします。

具体的な使用法:

1. クライアント:

url=encodeURI(url);

サーバー:

String linename = new String(request.getParameter(“name”).getBytes(“ISO-8859-1”),“UTF-8”);

2. クライアント:

url=encodeURI(encodeURI(url)); //用了2次encodeURI

サーバー :

String linename = request.getParameter(name);

java: 文字デコード

linename = java.net.URLDecoder.decode(linename , “UTF-8”);

Java の詳細については、

java 基本チュートリアル 列に注目してください。

以上がJavaでURLが文字化けする場合の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。