=エ=)思うようにならん
2005年1月24日文字がうまくDBにはいらない。
問題の特徴をあげてみる。
数字が先頭にある文字列は、それ以降のひらがななどの文字が文字化けする。
データ型はVERCHAR
文字コードに原因があると思う。
日本語文字が先頭の場合は、文字化けをしていないのだ。
数字が先頭に入った場合、UTF-8はASCII(1バイト)で入れるのではないだろうか。その後に、日本語文字(3バイト)が入っても、列の基準はASCIIなので、バイナリー(16進数の文字列)がそのまま表示されるだけなのだかもしれない。
もう一つ問題がある。
数字だけとたまに先頭にアルファベットがあるデータを入れる列で、アルファベットが先頭になるときだけ、データが入らない。
上の問題の原因を思うと、アルファベットもASCIIなのに、またなんで入らないのだ???ってことになるのだ。
数字が先頭だと勝手にINTEGERな列として入れてしまうのだろうか。。。
二つの問題即効的な解決方法。
数字を先頭にするな?!
テーブルの名前は数字を先頭にしてはいけないというルールがあったのは覚えていたけど、数字以外の文字列を入れる場合も数字を先頭にしてはいけないのかもしれない。
でもね、ターミナルからinsert intoを使って直接入れると入るのよね。。。。。
問題の特徴をあげてみる。
数字が先頭にある文字列は、それ以降のひらがななどの文字が文字化けする。
データ型はVERCHAR
文字コードに原因があると思う。
日本語文字が先頭の場合は、文字化けをしていないのだ。
数字が先頭に入った場合、UTF-8はASCII(1バイト)で入れるのではないだろうか。その後に、日本語文字(3バイト)が入っても、列の基準はASCIIなので、バイナリー(16進数の文字列)がそのまま表示されるだけなのだかもしれない。
もう一つ問題がある。
数字だけとたまに先頭にアルファベットがあるデータを入れる列で、アルファベットが先頭になるときだけ、データが入らない。
上の問題の原因を思うと、アルファベットもASCIIなのに、またなんで入らないのだ???ってことになるのだ。
数字が先頭だと勝手にINTEGERな列として入れてしまうのだろうか。。。
二つの問題即効的な解決方法。
数字を先頭にするな?!
テーブルの名前は数字を先頭にしてはいけないというルールがあったのは覚えていたけど、数字以外の文字列を入れる場合も数字を先頭にしてはいけないのかもしれない。
でもね、ターミナルからinsert intoを使って直接入れると入るのよね。。。。。
コメント