SHIFT_JIS 文字セットを使用した ASP Classic ページがあります。ページの head セクションの下にあるメタ タグは次のようになります。
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
私のページには、200 文字までしか入力できないテキスト ボックス (txtName) があります。[送信] ボタンの onclick() イベントで呼び出される、文字の長さを検証する Javascript 関数があります。
if(document.frmPage.txtName.value.length > 200) {
alert("You have exceeded the maximum length of 200.");
return false;
}
問題は、Javascript が SHIFT_JIS でエンコードされた日本語文字の正しい長さを取得していないことです。たとえば、文字「测」の SHIFT_JIS の長さは 8 文字ですが、おそらく Javascript がデフォルトで使用する Unicode エンコーディングが原因で、Javascript はそれを 1 文字としてしか認識しません。ケなどの一部の文字は、SHIFT_JIS では 2 文字または 3 文字です。
Javascript によって提供される長さのみに依存する場合、長い日本語の文字はページ検証に合格し、データベースに保存しようとしますが、DB 列の最大長が 200 であるため失敗します。
私が使用しているブラウザは Internet Explorer です。Javascriptを使用して日本語文字のSHIFT_JISの長さを取得する方法はありますか? Javascript を使用して Unicode から SHIFT_JIS に変換することは可能ですか? どのように?
助けてくれてありがとう!