データベースに格納された半角カナを含むデータを、全角カナに変換しなければならない、となったらどうすればよいでしょうか。SQLでできれば良いのですが、簡単ではなさそうです。そのような困っている方に、半角カナを全角カナに変換する方法について解説します。
半角カナを全角カナに変換する理由
パソコンを使えば、今でも半角カナの文字を入力できるのをご存じでしょうか。普通、日本語を入力すると、全角の漢字やひらがなで入力されます。しかし、カタカナに変換する際、F8キーを押すことで、半角カナにすることが可能です。
しかし、SQLでは半角カナを使うためには制限があります。古い情報システムで使えていたとしても、新しいシステムでは不具合が発生するかもしれません。そのため、全角カナに変換するなどの対策が必要です。次から、この半角カナを全角カナに変換しなければならない理由について解説します。
半角カナを使ってはいけない
Webページで住所を入力する際など、全角文字で入力してください、といった注意が表示されるのを見たことがあるのではないでしょうか。パソコンやスマホでは、ひらがなや漢字は全角文字で入力します。一方、アルファベットや数字は、半角文字でも入力できますが、それらが区別されるのが一般的です。
先ほど触れたように、パソコンを使った場合、カタカナは、全角でも半角でも入力できます。これは、昔、半角のカタカナが使われていたことから、互換性を保つために残してある機能です。しかし、半角のカタカナは、今のWebシステムと相性が悪く、サーバーに不具合を起こす原因にもなります。そのため、最初から半角カナが使えない仕様で構築するべきでしょう。
半角カナの問題点
情報システムを構成するプログラムやデータベースで日本語を扱うためには、日本語の文字コードを処理するための仕組みが必要です。そして、最近は、WindowsやLinuxで標準になっているUTF8が使われます。しかし、半角カナは、国際規格であるUTF8が作られる前から使われており、しかも日本独自の仕様の文字コードです。そのため、正しく文字コードとして扱われるとは限りません。
特に、今使われているデータベース管理ソフトは、日本語の文字コードでいろいろな問題を抱えています。そのため、もし、半角カナが含まれていると、パソコンでは使えたとしても、Webシステムではデータとして登録できなかったり、できたとしても文字化けして読めなくなることがあります。
半角カナを含む文字は変換が必要
先ほど説明したように、新しいWebシステムでは半角カナは推奨されません。しかし、過去には、半角カナがよくつかわれていました。
例えば、商品名を格納するレコードに長い商品名を入れる場合、半角カナを使われていました。また、昔から使われているレガシーな情報システムでは、いろいろな箇所に半角カナが紛れ込んでいます。これは、昔は、半角カナを使うのが当然だったからです。
しかし、最近のクラウドベースの情報システムでは、半角カナが使えないケースがほとんどです。そのため、半角カナを全角カナに変換し、レガシーなデータを今のシステムに取り込めるようにする必要があります。
SQLで半角から全角に変換できるか?
昔から使われているデータベース管理ソフトは、半角カナを使っても文字化けしないように、文字コードに関する設定がカスタマイズされています。この場合、同じ設定が可能なデータベース管理ソフトにデータを移植するなら、半角カナを全角カナに変換する必要はありません。
しかし、半角カナを使い続けると、クラウド上のサービスと連携できないなど、いろいろな不都合が発生します。もし、SQLで一括で変換したいと考える方が多いのではないでしょうか。
半角から全角に変換する関数はない
残念ながら、半角カナから全角カナに変換する機能が必要なのは日本だけです。そのため、国際的な標準のSQLには、そのような規定はありません。しかも、よく使われているデータベース管理ソフトでは、アメリカなどで開発され、後から日本語化したものばかりです。そのため、そういったデータベース管理ソフトで使えるSQLには、半角から全角に変換する関数がありません。
ただし、外部で文字コードをUTF8に変換しておけば、replace関数などを組み合わせることで変換が可能です。とはいえ、かなり面倒なSQLを組む必要があることから、一旦パソコンにデータを転送し、パソコン上のアプリを使って半角カナから全角カナに変換することをおすすめします。
Excelでは半角から全角に変換するには
オフィスでよく使われることの多いExcelでは、今でも半角カナがよく使われています。それは、小さなセルに文字を詰めて入れる際、半角カナを使えば全角文字の2倍の文字を詰め込むことが可能で、使いやすいのが理由です。しかも、Excelで使っている限り、文字化けすることはありません。
しかし、その半角カナの文字を使ったExcelのシートを、Webシステムに登録しようとすると、入力できなかったり、文字化けするなどのトラブルが発生します。
なお、Excelには、半角カナを全角カナに変換する関数が用意されています。もし、半角カナの文字が含まれているExcelのシートを変換するなら、Excel上での変換をおすすめします。
Excelで半角から全角に変換する関数
Excelには、セルの中で使える関数がたくさんありますが、その文字列を扱う関数の中に、半角から全角に変換する関数、および、全角から半角に変換する関数があります。そして、この関数は、jis()とasc()です。
半角から全角に変換する関数 =jis(変換対象のセル)
全角から半角に変換する関数 =asc(変換対象のセル)
jis関数は、全角の漢字と半角カナが混じった文字列を指定すると、全て全角文字に変換してくれます。もし、半角カナが含まれていそうなExcelシートをWebシステムにアップするなら、事前に、=jis関数で全て全角文字にするシートを用意し、そのシート上のデータをアップするとトラブルを避けられるでしょう。
テキストエディタの文字コード変換を活用する
昔は、日本語の文字コードが幾つもあり、パソコンはSJIS、SolarisなどのUNIXはEUC、LinxuはUTF8などとバラバラでした。そのため、昔のITエンジニアは、複数の文字コードに対応したテキストエディタを使い、それぞれに合わせてd文字コードを変換していました。ベテランのITエンジニアの中には、昔使っていたテキストエディタを、今も使い続けている方がいるかもしれません。
このようなテキストエディタは、半角カナを全角カナに簡単に変換できます。SQLやExcelで変換するのが難しい場合は、ぜひ、テキストエディタを活用してください。
さくらエディタを使った変換の例
さくらエディタは、2000年ごろに公開されたフリーウェアのWindows用テキストエディタです。なお、このテキストエディタは、プログラムのソースコードの編集に向いており、マクロなども使えますが、特に多くの日本語文字コードに対応している点が特徴として挙げられます。
サクラエディタを使って半角カナを全角カナに変換するには、変換したい文字を選び、メニューの「変換」のプルダウンメニューから、「半角カタカナ→全角カタカナ(K)」をクリックするだけです。また、個別に選択するのが面倒な場合は、全てを選択し、「半角カタカナ→全角カタカナ(K)」をクリックすれば、半角カナの文字だけ全角カナに変換されます。
長く使われてきたテキストエディタの中には、アップデートが停止されWindows10に対応していないものもありますが、さくらエディタは今もGitHubで開発が続けられています。そのため、安心して勧められるテキストエディタの1つです。
半角カナが使えないテキストエディタに注意
最近は、プログラム編集に適したテキストエディタが幾つも公開されています。SQLを扱うITエンジニアの方の中には、最近リリースされた新しいテキストエディタを活用されている方もいるでしょう。
しかし、そのような新しいテキストエディタは、複数の文字コードの変換に対応しているとは限りません。さらに、半角カナを含むテキストを読み込むと、文字化けするものもあります。このように、半角カナが使えないテキストエディタがあるので注意してください。
まとめ
これまで紹介したように、Excelなどのパソコン用のアプリでは、今でも半角カナが使えますが、クラウドの環境では使えません。トラブルを防ぐために、半角カナの利用を中止し、全角カナを使いましょう。しかし、レガシーなデータを扱う場合は、半角カナから全角カナに変換が必要です。
なお、SQLでは半角カナから全角カナに変換するのは面倒です。パソコン用のExcelやテキストエディタを使えば簡単に変換できるので、ぜひ、活用してください。