public class DBType_NVAR extends AbstractDBType
Unicode文字列の値を HTML のエスケープ記号(&#xZZZZ;)に変換する、カラム属性を定義します。 SJIS(JA16SJIS) で作成されたデータベースに、(NVARCHAR2)を使用して中国語等を登録するのは 非常に複雑でかつ、リスクが大きい処理になります。 ORACLE殿でも、自信を持っては勧められない機能とのコメントを頂いています。 そこで、HTMLでのエスケープ文字を使用して、Unicodeを文字列化して登録する為の DBType として、新規に作成します。 ここでは、入力文字を、キャラクタ(char)型に分解し、(&#xZZZZ;)に変換していきます。 よって、通常に1文字(Shift-JISで2Byte,UTF-8で3Byte)が、8Byteになります。 この変換された文字列を、HTML上でそのまま取り出すと、元のUnicode文字に戻る為、 通常のShift-JISでは、扱えない文字(中国語など)でも表示可能になります。 (NVARCHAR2)を使用して中国語等を登録する場合の文字コード変換 APレイヤ ネットレイヤ DBレイヤ 文字入力 → 全てDBのCHARセットに変換 → NCHARの分だけUTFに変換 (UTF) (S-jis) (UTF) タイプチェックは、HTMLのエスケープ記号(&#xZZZZ;)に変換後に実施されます。 データベースへの登録には、半角英数字になります。 ・文字列長は、Byte換算での文字数との比較 ・半角文字列チェック「 c < 0x20 || c > 0x7e 以外」エラー ・文字パラメータの 正規表現チェック ・クロスサイトスクリプティングチェック
3.8.0.0 (2005/06/07) 新規作成 |
BUFFER_MIDDLE, CR
コンストラクタと説明 |
---|
DBType_NVAR()
デフォルトコンストラクター
|
修飾子とタイプ | メソッドと説明 |
---|---|
String |
valueAdd(String value)
String引数の文字列を+1した文字列を返します。
|
String |
valueFill(String value,
int sizeX,
int sizeY,
String encode)
半角0文字の固定長でFILL埋めされた文字列を返します。
|
String |
valueSet(String value)
エディターで編集されたデータを登録する場合に、データそのものを
変換して、実登録データを作成します。
|
getDefault, getNativeType, valueAction, valueAdd, valueCheck, xssCheck
public DBType_NVAR()
6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor. |
public String valueFill(String value, int sizeX, int sizeY, String encode)
valueFill
インタフェース内 DBType
valueFill
クラス内 AbstractDBType
value
- FILL埋めする文字列sizeX
- 整数部分の文字列の長さsizeY
- 小数部分の文字列の長さencode
- エンコード指定public String valueAdd(String value)
valueAdd
インタフェース内 DBType
valueAdd
クラス内 AbstractDBType
value
- String引数の文字列public String valueSet(String value)
valueSet
インタフェース内 DBType
valueSet
クラス内 AbstractDBType
value
- (一般に編集データとして登録されたデータ)Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.