ホームページ >ウェブフロントエンド >htmlチュートリアル >html中国語文字化けHTMLハイパーリンク中国語文字化け問題の分析と解決_HTML/Xhtml_Webページ制作

html中国語文字化けHTMLハイパーリンク中国語文字化け問題の分析と解決_HTML/Xhtml_Webページ制作

WBOY
WBOYオリジナル
2016-05-16 16:40:412627ブラウズ

Vm のハイパーリンク URL は、Get リクエストのパラメーターとして中国語に接続する必要があります。直接結合するとバックグラウンドアクションのパラメータオブジェクトに渡してから文字化けして取り出してからURLに結合する必要があります。
解決策は、Action にメンバー変数を追加して、エンコードされた中国語パラメータを保存することです。 VM ページをレンダリングするときに、この変数の値を取り出して、ハイパーリンクを接続します。

ここで発生する問題は です。java.net.URLEncoder の encode() メソッドを呼び出すときに、指定された文字セット パラメータが表示されない場合、URLEncoder はデフォルトの文字セットを使用します。 。このデフォルトの文字セットは、Eclipse で main() メソッドを実行する場合と Tomcat で Web アプリケーションを実行する場合に異なる結果を生成するため、エンコード結果に影響します。

コードをコピーします
コードは次のとおりです:

/**
* 文字列を x-www-form-urlencoded に変換します。
* 形式。このメソッドは、プラットフォームのデフォルトのエンコーディング
* をエンコーディング スキームとして使用して、安全でない文字のバイトを取得します。
*
* @param s String翻訳されること。
* @deprecated 結果の文字列は、プラットフォームの
* デフォルトのエンコーディングによって異なる場合があります。代わりに、encode(String,String)
* メソッドを使用してエンコードを指定します。
* @翻訳された String を返します。
*/
@非推奨
public static String encode(String s) {
String str = null;
try {
str = encode(s, dfltEncName); catch( UnsupportedEncodingException e) {
// システムには常にプラットフォームのデフォルトが必要です
}
return str;
}

メソッドのコメントにもその理由が示されていますこれが推奨されない理由は、この encode(String) メソッドがプラットフォームの文字セットに依存するためです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。