- - PR -
Windows Vistaの4バイト文字をチェックするJavaScript
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-01-28 02:22
Windows Vistaは、Windows XPまでのOSでは使用できなかったJIS第3、4水準の2バイト文字や4バイト文字が使用できるようになりました。
Windows Vistaでその2バイト文字や4バイト文字をJavaのWebアプリに入力し表示をすると、文字コードがEUCやSJISの場合「𘚟」のような10進数に文字化けしてしまいます。 そこで画面で更新ボタンをクリックしたときにJavaScriptでチェックし、アラートを出して利用者に削除してもらうか、近い文字に置換する方法で対処したいと考えていますが、JavaScriptのソースが公開されているサイトや実装方法を教えてください。 |
|
投稿日時: 2007-01-28 11:37
そもそもHTMLの文字コードをUTF-8とかにすればいい話ではないのでしょうか。
|
|
投稿日時: 2007-01-30 00:13
早速の返信ありがとうございます。
DBの文字コードがEUCになっており、JSPの文字コードもEUCになっているので、文字コードはEUCのままにしようと思います。 |
|
投稿日時: 2007-01-30 11:42
とりあえず、私が確認した限りではJavaScriptのエンジン自体は
Unicodeで動作しているようなのでString.charCodeAt(index)で 文字コードを取得するとShift_JISで書かれたHTMLだろうと 文字コードはUnicodeのものが取得されます。 EUC_JP ⊂ Unicode だったと思いますのでEUC_JPの文字コードの一覧を 作成して個別の文字をチェックすれば実現はできることになりますね。 現実的には遅くて使い物にならないと思いますが。 そもそも、Shift_JISで書かれたページだろうとEUC_JPで書かれたページだろうと inputタグの入力欄にはハングルなどの文字を書くことができるわけで、 不明文字の入力なんてVistaになって初めて出てきた問題ではない。 XPでも入力欄にハングルなど文字セット外の文字を入れれたわけです。 それに対してなんらの対応もしていなくて問題なかったのにUnicode4.0の 拡張文字が出て初めて対応を入れるというのもよくわかりませんが、 いずれにせよ、クライアントサイドでの入力チェックは厳しいのかもしれませんね。 HTMLからDBまで全部Unicodeにしてしまうのが一番無難だと思いますが 既存システムの改修となると難しいですかね。 |
|
投稿日時: 2007-01-31 11:40
nagiseさんの言われるように、JavaScriptでチェックするのは現実的ではないのですが、
どうしてもやりたいのであれば、 http://wakaba-web.hp.infoseek.co.jp/table/jis-note.ja.html こちらに、EUCとUnicodeのマッピングが記載されています。 これを使って、JIS X 0208 に含まれない文字を検出してエラーを出すことになります。 あまりに非現実的なので誰もしていないと思います。自分で作るしかないでしょう。 |
|
投稿日時: 2007-01-31 20:54
「javascript 漢字」で検索したら、以下のURLがヒットしました。
http://www.losttechnology.jp/JavaScript/kanjichecker.html 参考まで。 |
|
投稿日時: 2007-02-08 14:43
私もVistaでは機種依存文字の入力が比較的簡単になった為、
クライアントサイドでの特殊文字チェックの実装を検討しています。 私の所ではクライアントがWindowsオンリーの為、VBScriptが使える為 「SJISに変換出来なかったら」エラーみたいなロジックをhtmlに埋め込む 事でなんとかなりそうです。。。 (どっちにせよ不本意な実装方式ですが・・) こんなサイトを見つけました、参考にどうぞ。 http://nurucom-archives.hp.infoseek.co.jp/digital/escape-codec-library.html |
1