C#とSQLite続き

文字コード自体の問題かと思われたのですが、よくよく調べてみたところUnicodeに実装されている結合文字の問題と判明。

普通の日本語変換ソフトなら濁点と半濁点の付いた文字はそのまま1文字として変換してくれるのですが、元データーはひらがな+結合文字の濁点(半濁点)で作成されていました。

これじゃ文字コードをどう変換したところで普通に手打ちして作ったDBの中身と正しく照合できるはずが有りません。もしかするとUTF16->ShiftJIS(windows codepage 932)->UTF8のルートで変換したらなんとかなったのかもしれませんが、面倒…

面倒ですけど、頭の体操ということで一回試してみますか。

追伸:

試した結果、結合文字はShitJIS側では知らない文字ということで?に変換されてしまいました。なのでこの試みは失敗。濁点がつくのは「か行」、「さ行」、「た行」、「は行」なので地道に変換するしかないですね。面倒…

C#とSQLite

 MP3データーのTAGを整理してファイル名に反映させるプログラムを作成中。TAGのデーターにある人名から肩書を追加するのに最初はべた書きしてましたが、ファイル数が膨大になってきたので、対応しきれません。まぁ最初から分かってはいたんですがね。

 ならば「DBを用意して、そこから引っ張ってくれば簡単♪」とプログラムを書き始めます。ちなみに最近は脳力減退を補うためにC#で書きますが、なかなか… OOPの場合、classの中身が謎であることが多くて検索ばかりでなかなか進みません。
余談ですが、最近のVSはAI化が進んでいて先回りしてコード例を提示してくるのでちょっと気味が悪かったりします。バリバリコードを書くような場合には便利かもしれませんけどね。

 さてDBには使い捨てプログラムと言うことも有って一々インストールしなくて済むSQLiteを選択。別途用意したデーターを書き込んでDBを準備します。そして本番プログラムから検索させるのだけど、全然ヒットしない。アルファベットだけの場合はうまくいくので、文字コードからみだとは思うのだけどいろいろゃっても改善されず。

 ならばとC#からデーターを書き込んでやれば良いのではと気が付いて新しいプログラムを作成。ちょっとトラブルはありましたが、無事にDBに書き込みできました。

さぁ、これでどう改善されるのかな。