Unicode対応CGIスクリプト
XHTML対応ショッピングカートCGI
携帯対応ショッピングカートCGIの比較検討
ショッピングカートCGI
ダウンロードの申込み
アフィリエイト参加
携帯対応ショッピングカートCGIの商品検索の機能 XHTML対応ショッピングカートCGI

Unicode対応CGIスクリプト

Unicode対応のショッピングカート、及びメールフォームについて説明致します。

Unicodeの必要性Unicodeの必要性

日本語以外の言語を使用する場合、あるいは、日本語OS以外のOSからアクセスする場合、言語を適切に表示させるためには、多言語に対応した文字コードUnicodeを使用する必要があります。

例えば、Shift-JISで記述されたページを英語OSのブラウザーからアクセスすると下記のようなメッセージが表示されます。

「To display language characters correctly you need to install the following language pack: Japanese」(海外から日本語サイトを見た場合、日本語表示はどうなりますか?

それを無視して表示させようとすると当然文字化けが起こります。

一方、Unicodeで記述されたページの場合はそのようなメッセージが出ず、しかも、使用フォントがない場合でも、その文字は□と表示され、文字化けのような乱れは起こりません。

それで、多言語環境を考慮するなら、Unicode化が必要になります。以下に、Shift-JIS対応のスクリプトをUnicode対応にする手順を説明いたします。

※Unicodeには幾つかありますが、インターネットではUTF-8が主流となっているようです。

検索方法の決定Unicodeへの移行の方法

【1】まず、最初に、スクリプト自体をUnicode(UTF-8)で保存する
スクリプトファイル、およびデータファイルをすべてUTF-8で保存する必要があり、このためには、Unicode対応のテキストエディタが必要になります。(EmEditorなど多くのエディタがある。)
ファイルを開き、名前をつけて保存する際にエンコードを指定します。この時、UTF-8を選択し、「Unicodeサイン(BOM)を付ける」をoffに設定して保存します。


【2】METAタグでUTF-8を設定する

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

また、XHTMLでは宣言部分の最初にUTF-8を指定します。
<?xml version='1.0' encoding='utf-8'?>


【3】jcode.plの設定を無効にする

下記のように#をつけてコメントにしてしまいます。

# require './jcode.pl';

# &jcode'convert(*key, 'sjis');


【4】フォント指定を変更する

フォントは指定しないか、指定するときは、フォントの英語名称を用います。


【5】メールの送信部分の文字コード

メールヘッダー及びメール本文の文字コードをMIMEエンコードする必要があります。

メールヘッダーをutf-8からエンコードする必要があるため、mimew.plが使えませんので工夫が必要です。それで、mimew.plを簡単に改造したmimew_utf8.plを内蔵させて対応しました。

また、メール本文もbase64エンコードして送信することが勧められています。
utf-8のまま8bit送信をすることもできますが、たまにサーバにより文字化けすることがあるようです。


【6】プログラム内部でUTF-8へ変換する必要がある場合

Shift-JISなどのデータを受け取る場合は、UTF-8に変換して処理が必要になります。この場合は、UTF-8に対応した変換モジュールEncode.pmを使います(perl5.8から標準)。

use Encode;

Encode::from_to($err_msg, "shiftjis" , "utf8");



【注】Unicode形式のページで半角カタカナを使うことは問題ありません。しかし、基本的には、インターネット上で半角カタカナを扱うことはできません。それで、多言語を扱おうというのであれば、半角カタカナを使わない方が賢明でしょう。



【7】Unicode対応クレジット決済

ほとんどの日本のクレジット決済代行システムはShift-JISを採用しており、Unicodeには対応していません。

しかし、クレジット決済のためのデータは本来英数字ですし、クレジットカードは世界共通に使えます。ですから、決済会社へ引き渡すデータを半角英数字だけに制限することにより、この問題を回避できます。

もっとも、決済代行会社の決済画面がUnicodeに対応していないので、Shift-JISが使えない環境では文字化けは避けられないでしょう。(イプシロン決済のように、日本語と英語が併記されているなら、何とかなるかもしれませんが。)

また、PCtoMobileはPayPal決済にも対応しています。

・・・・・・・・・・・・・・・・・・・・・・・・・

PCtoMobile-Unicodeでは、これらの変更を実施いたしました。
PCtoMobile-U

下記を参考にしてください。

Unicodeと携帯についてUnicodeと携帯について

携帯の場合は、DoCoMo、SoftBankの最近の機種ではutf-8が使えます。しかし、AUではShift_JISのみが使える仕様となっています。それで、PCtoMobile-Uでは、下記のように文字コードを機種ごとに振分けて出力します。
  1. DoCoMo、SoftBankの最近の機種:UTF-8
  2. AU、及びDoCoMo、SoftBankの旧機種:Shift_JIS
  3. 3キャリア以外、スマートフォン及びPCからのアクセス:UTF-8
という訳で、DoCoMo、SoftBank、AUの3キャリアに対応し、かつ、Unicode対応の海外の携帯電話の多くに対応しているはずです。

【海外の携帯電話について】
海外の携帯電話インターネット

Unicode版の使用法Unicode版の使用法
ユニコード版の使用法はShift-JISのものと基本的に同じですが、注意すべき点は次の2つです。

【1】まず、すべてのスクリプト、データファイルをUTF-8で保存する必要があるということです。ですから、プログラム等を修正したい場合は、UTF-8対応のテキストエディタが必要になります。

【2】また、表示したい言語に合わせて、FONTがPCにインストールされていることが必要になります。
初期値は下記のFONTが設定されています。下表の文字が文字化けしなければOKです。

      font-family: 'MS UI Gothic' ,'Lucida Sans Unicode' ,'Arial Unicode MS';

言語 例文
機種依存文字 №㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼㍻①②③④⑤髙唖娃阿哀愛挨姶逢葵茜
穐悪握渥旭葦≡∫∮∑√⊥∠∟⊿
中国語 你对这件是有什么看法?这件是啊,看这么说了
韓国語 그렇게 막무가내로 굴면 안돼!
ロシア語 АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭ
ЮЯабвгдеёжзийклмнопрстуфхцчшщъы
ьэюя
ポルトガル語 Meu nome é Sérgio e estou interessado em aprender japonês.
イタリア語 Di che città sei ? Quando è il tuo compleanno ?
スペイン語 ¡Hola! Tengo 20 años. ¿Quieres aprender más japonés conmigo?
ドイツ語 Ich heiße Martina, und ich möchte gerne japanisch lernen.
フランス語 Je suis très passionné par la culture française.
ギリシャ語 ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζη
θικλμνξοπρστυφχψω

上記の例文をコピーして用いて、Unicode対応のショッピングカートが文字化けせずに動作することを体験してみてください。日本語の枠を超えたすばらしさを実感できるでしょう!

アクセス解析プログラムアクセス解析プログラム内蔵
PCtoMobile-U(Unicode版)では、アクセス解析プログラムCart Page Analyzer が標準で内蔵されています。(⇒アクセス解析プログラムの解説




Copyright (C) 2012  WEBインベンター All rights reserved.