アメリカサーバーで日本語サイトを運営するときの問題点解決方法

日本では依然、ASPやASP.NET開発用のホスティングサービスが北米のそれとは比較にならないくらい高価です。弊社のホスティングサービスは アレンタス社(カナダ)の協力により、低額でホスティングサービスを提供しております。従ってサーバーは北米にあり、OSの環境は英語環境です。

日本語と英語という言語環境の違いによるASPでの開発への影響はほとんどありませんが、コーディングやデータベースに工夫が必要になる場合があります(特にASPは)。
英語環境のOS上でASPプログラムを実行する場合には、基本的に「<%@ CodePage = 932 %>」というコードをスクリプトコードの1行目に記述しておく必要があります。データベースやメールを送る際には特にこの記述が必要になってきます。
もし本番環境が英語環境である場合で、日本語環境を開発環境として使う場合(ほとんどの場合がそうだと思いますが)、この記述をしておいて開発を行うと、本番環境へアップしたときの調整作業はスムーズになるでしょう。
Technical Tips:
o Accesデータベースからデータを表示しようとするとエラーが出る (2004/12/22)
o テキストファイル読み込んでページに表示させると、文字化けする (2004/12/22)
o MS Access 2000データベースでの日本語データの取り扱い方
o CodePage=932とASPMailの併用 (2004/08/19 問題点と補足を追加)
o MS Access 97データベースでの検索問題

——————————————————————————–
■ Accesデータベースからデータを表示しようとするとエラーが出る (2004/12/22)
問題:
Accessデータベースからデータを表示させようとすると、下記のようなエラーメッセージが出でる。
 selected collating sequence not supported by the operating system
解決法:
Accessの言語設定を変更します。手順は下記の通りです。
該当のMDBを開く
メニューの「ツール」から「オプション」を選び、オプションウィンドーを開く
「全般」タブをクリック
全般の設定の中に「新規データベースの並び順序」という設定項目があります。そこの設定が「全般」になっているかどうか確認してください。もし「日本語」になっている場合、ご報告のエラーが出ることがありますので、「全般」へ設定を変更してみて試してみてください。
MDBの最適化行う

——————————————————————————–
■ テキストファイル読み込んでページに表示させると、文字化けする (2004/12/22)
問題:
外部テキストファイルを読み込み、ページ内に表示させると文字化けが起こってしまう。
解決法:
表示させる部分直前でいったんCODEPAGEをANSI(CODEPAGE="1252")に変更し、その部分の表示が終わったら元のCODEPAGEに戻す。

——————————————————————————–

■ MS Access 2000データベースでの日本語データの取り扱い方
問題:
MS Access 2000データベースに格納されている日本語データをページ上で表示すると、日本語が全て「?」になる。
解決法:
<%@ CodePage = 932 %>というコードをデータベースを利用するページの最初に記述する。

——————————————————————————–
■ CodePage=932とASPMailの併用 
問題:
CodePage=932でページの言語が日本語に設定してある場合、ASPMailコンポーネントを利用してそのページ上からメールを送信すると、メールの日本語が化ける。
解決法:
CodePage=932が指定されているページでASPMailコンポーネントを利用する場合、次のようにコードをアレンジする必要があります。

*メール内の件名や本文などで使用する日本語テキスト(データベースからのデータを含む)は、HTMLフォーム内で指定し、フォームエレメントとしてそれらをASPMailコンポーネントを使用するページへ送る。
*ASPMailコンポーネントを利用する直前で、Session.CodePage=1252を指定しそのページで使われる言語コードを英語に戻す。ま た、ASPMailコンポーネントを利用した後は、Session.CodePage=932で日本語用の言語コードに再設定する。
問題点:
上記の方法には一つだけ問題点があります。それは、メーラーによってはメールヘッダが文字化けしてしまうことです。これを回避する方法は、当方ではまだ見 つけておりません。回避策をご存じの方がいれば、是非ご一報ください。このページで紹介したいと思います。(ただし、当方の見解では、ASPMailコン ポーネントでは、これが限界かと思っています。どうコンポーネントでは、文字エンコードのサポートが不十分のような感じです)
補足:
ASPでBASP21などのコンポーネントを頼らずに日本語メール送信時の文字化け問題を解決するには、専用のエンコーダーを作る必要があると思います(ASP.NETで開発する場合は、.NETに準備されているので必要なし)。
MIS沖縄のホスティングサービスでは、日本語メール用のスクリプトを準備してありますので、メールでの文字化け問題は解決済みです(MIS沖縄のホスティングユーザー様には無料で配布しています)。
また、ASPMailコンポーネントではメールヘッダのエンコードに完全に対応していない節があるので、ASPEmail(英語)とという別のコンポーネントを使っています。

——————————————————————————–
■ MS Access 97データベースでの検索問題
問題:
Access 97内の日本語データで「真」と「ー(『サービス』などののばし記号)」の文字について検索がうまくいかない。
例えば、データ内に「山田真一」という名前があるとします。そのデータを探すために検索キーワードとして「真」を使い検索をかけるとデータはそこにあるに もかかわらず、検索結果として現れない。(他の文字(例えば「田」)を検索キーワードとして使った場合は検索されます)
また、データ内にある「サービス」など「ー」を含んだ文字列を検索するために、検索キーワードとして「ー」または「ー」を含んだ文字(例えば「サービス」)を使うと、以下のエラーメッセージが表示されてしまいます。
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC Microsoft Access Driver] Invalid pattern string
(「ー」以外の文字を検索キーワードとして使えば検索されます)
解決策:
2001年12月現在、この問題に対する解決策は見つかっておりません。唯一アドバイスできるとすれば、データベースをAccess 2000に変換してご利用していただくことです。
Access 97の利用すると上記1.、2.で紹介したような問題は起こりません。データベース内のデータを検索する必要のないウェブアプリケーションであれば、 Access 97でも十分対応できると思いますが、まだ確認されていない問題が起きる可能性も否定できません。

コメントを残す

メールアドレスが公開されることはありません。