アプリ版:「スタンプのみでお礼する」機能のリリースについて

あるwebシステムを開発予定です。
そのシステムのwebページはUTF-8で作成するのですが、そのページのフォームで入力した文字データがShift-JIS(またはMS932)で扱える文字であるかをjavascriptでチェックしたいです。

このデータは最終的にMS932で動作するシステムに登録するため、取り扱い可能かをサブミット前にチェックしたいです。

参考になる手法が掲載されたサイトやOSSのご紹介を頂きたいです。
よろしくお願いします。

A 回答 (2件)

基本的に JavaScript は Unicode の文字集合しか扱えないため、


他の文字集合に変換できるかの判断処理は、すべてスクリプトで行わなくてはいけません。

MS932 ですと、
JIS X 0201 の部分は単純な範囲条件で処理できますが、
JIX X 0208 や JIS X 0213 の部分は規則性が無いため、
全文字分を列挙した変換テーブルを用意することになります。

OSS の変換ライブラリもありますが、
対象システム向けに特化した変換テーブルを作成するのは、
以下の様にさほど難しくないので、挑戦してみては如何でしょうか。

UTF16 から、目的の文字集合へ変換ができる開発環境にて / 例: Java, node.js
以下のプログラムを作成
1. 目的の文字集合のすべての文字から、 UTF16 に変換できる文字を抽出
2. 抽出した文字の UTF16 コードを列挙した配列を作成
3. コード値で昇順に並び替え
4. 配列を JSON 型式でテキスト出力

JavaScript にて、以下のスクリプトを作成
1. JSON 配列を定数として定義
2. 文字の UTF16 コード値が、配列に含まれているか探索する関数を用意
3. 文字列を一文字ずつ上記の関数に渡す
4. すべての文字が探索できるならば、文字列は目的の文字集合に変換できると判断
    • good
    • 0
この回答へのお礼

ありがとうございます
列挙しないとならないんですね。
ブラウザへの転送量と処理性能をしっかりと確認しなければいけませんね
参考になりました

お礼日時:2019/08/29 15:58

こんにちは



内容的にほとんどわかっていませんので、役に立つかどうかもわかりませんが・・・

以下のサイトで、javascriptで文字コードのチェックを行っているようです。
ご質問内容とまったく同じというわけではありませんが、それなりに参考になるのではないかと・・・
https://www.dsri.jp/database_service/jicfsifdb/m …

いずれにしろ、文字コード範囲のチェックになるようですが、各種文字コード変換ライブラリの処理速度を比較したサイトがありましたので、(こちらも役に立つかどうかわかりませんが)ついでに。
https://qiita.com/weal/items/3b3ddfb8157047119554
    • good
    • 0
この回答へのお礼

ありがとうございます
処理速度の比較はとても参考になります

お礼日時:2019/08/29 15:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています