- - PR -
VB.NETで文字列長の取得方法
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-09-02 13:19
少なくとも1と2についてはString自体なので文字コードは定義されません (内部的にどの文字コードで持ってるかなどの話は別にして) データベース内部の文字コードはDB側の設定にしたがって格納されてるんじゃないですかね。
文字列長 += 2を通るんじゃないですかね。 で、話は戻るかもしれませんが入力チェックするだけなら正規表現とかで十分だと思いますよ。 | ||||||||||||
|
投稿日時: 2007-09-02 14:59
文字コードは何になるのでしょうか?です。 この入力チェックは、データベースへ登録可能かチェックしたいのですから、 チェック仕様はDB内部の文字コードと項目定義に従います。 例えば、DB内部の文字コードがShift-JISで、項目定義がvarchar(10)だとしたら、 入力チェックでは「Shift-JISで10バイト以下か?」を調べることになります。 画面入力からDB格納までが一貫してShift-JISであれば 入力チェックも単純にShift-JISで判定すれば良いのですが、 「入力はunicodeでDBはShift-JIS」など文字コード変換が発生するケースでは、 そう単純では無い気がします。 そこで、画面入力からDB格納までのデータの文字コードを確認したいと思いました。 | ||||||||||||
|
投稿日時: 2007-09-02 15:30
>文字コードは何になるのでしょうか?です
ORACLEだと指定できる ほかは知らない | ||||||||||||
|
投稿日時: 2007-09-02 20:50
ご参考: http://blogs.wankuma.com/jitta/archive/2007/08/20/91162.aspx
> そこで、画面入力からDB格納までのデータの文字コードを確認したいと思いました。 重要ですね。もっとも、Unicode(UTF-16)で統一したら問題ないのに。。。とか思ったりしますが。「Wave-Dash 問題」を回避するためにも、統一できるなら統一した方がよいと思います。 | ||||||||||||
|
投稿日時: 2007-09-03 01:47
とかそういうことですかね。それは大いに重要だと思います。
一度Stringのインスタンスになってから入力チェックするのでそこはほとんど影響はないと思います。
「DB側の設定にしたがって格納」じゃなくて「DBクライアントの設定によって取得・登録」かな。 |