ウィンドウズでこのページをご覧の方へ Netscape Navigator (ウィンドウズ版)では一部文字化けしますので、できれば Internet Explorer でご覧になってください。マッキントッシュの場合は、どちらでも正常に表示されます。 |
5)結論
フランス語を使用したホームページを作成する場合、特にフランス語のアクセント使用のために生じる一連の困難な問題がありました。この問題についてはすでに「インターネットを利用したフランス語学習の可能性」でもふれましたが、ここではブラウザのその後のバージョン・アップなどの環境の変化をふまえ、問題を体系的に整理し、解決法を探りたいと思います。目的はあくまでも日本での一般的なパソコン環境でふつうに見ることのできるフランス語使用のホームページづくりです。「日本での一般的なパソコン環境」というのは現時点では、日本語OS(Macintosh、あるいは Windows)がインストールされたパソコンで日本語化されたブラウザ(Netscape Navigator、あるいは Internet Explorer)を使用する環境ということになるのではないでしょうか。このように実用的な目的が前提となりますので、それに必要なことはできる限り試したつもりですが、他方でブラウザのバージョンを4.0以降に限定するなど、試験・考察対象の限定もあったことはお断りしておきます。なお、以下でフランス語とあるのはアクセント付きのフランス語を指します。
上記ホームページでもふれましたが、フランス語には5種類のアクセント記号があります。これらのアクセント記号のついた文字は、HTMLではすべて特殊フォントとして扱われるため、例えば accent aigu のついた をブラウザの文字コードをラテン1(iso-8859-1)にして正しく表示するためには、é、あるいは é と書かなければなりません。少なくとも Macintosh で html ファイルを作成する場合はこれが必要条件になります。この記述方法をそれぞれ文字実体参照(Character entity references)あるいは数値文字参照(Numeric character references)と言います(前者はエスケープシークエンスともいいます)。特殊フォントはこのように「&キーワード;」あるいは「&#数値;」であらわされ、キーワードあるいは数値の部分に個々の特殊フォントをあらわすものが入ります。以下にアクセント記号のつく文字の記述方法を示します。
欧文コード(特にラテン1コード[ISO-8859-1])を用いたフランス語テキストに限っては、この方法でアクセント付き文字の問題は大部分解決することになります。実際、フランス語ホームページの多くでは文字実体参照が使われています。しかし、日本語とフランス語を混在させる場合はこれだけですべて解決するわけではありません。さらに、フォームを使った場合、Java Script を使用した場合には別の問題が生じます。フランス語のアクセント付き文字の処理は一筋縄ではいかないのが現状です。この問題を考える上では、ブラウザの種類(Netscape Navigator 、Internet Explorer )、バージョン、符号化方法(S-JIS、ISO-8859-1)、入力作業に使うOS(プラットフォーム)の種類などを考慮に入れる必要があります。
入力方法についは文字実体参照と数値文字参照を挙げましたが、別種の問題がまだあります。筆者のように Mac の日本語OSだけを使っていると気がつかないのですが、後でみますように、JavaScript を使うときに特に大きな意味を持つもう一つ重要な問題がプラットフォームの違いにより生じます。
マックOSを用いてブラウザの文字コードを欧文コード(ISO-8859-1)にした場合を考えましょう。テキストファイルに h屍o と打ったものをブラウザでみると、文字化けして表示されます。文字実体参照か数値文字参照かどちらかが必要になります(後の表3参照)。ところがフランスやカナダのフランス語ホームページを実際にみてみますと、文字実体参照も数値文字参照も使わずにしかもアクセントが文字化けせずに表れるものがあります。同じ h屍o でありながら、一方はブラウザ(ISO-8859-1)で表示させると文字化けし、もう一方はちゃんと表示されるというまことに奇怪なことになるのです。アスキーコードを調べたところ、前者のマックOSで書かれた は %8E であるのに対し、後者の は %E9 であることがわかりました。つまり、同じアクセント記号をつけるのにプラットフォームによって異なったコードをあてがっているのです。前者を [1]、後者を [2]としますと、 [2]は実はウィンドウズで入力された文字なのです。同じ [2]をマックOSで表示させると になってしまいます。同じアスキーコードのものがプラットフォームによって と表示されたり、 と表示されたりしますが、ブラウザ(iso-8859-1)の場合だけプラットフォームにかかわらず と表示されるのです。一方、 [1]の方は、ブラウザ(ISO-8859-1)では逆に文字化けしてしまいます。
![]() |
これはウィンドウズがラテン1コード(iso-8859-1)に近いコード(Windows-1252)を使っているのに対し、マックOSが独自のコード体系(例えば、Mac Roman)を使っていることから生じるようです(飯野「パソコン上でのフランス語とフランス語関連ソフト(Windows95/98 日本語版の場合)」参照)。したがって、以下ではこの二つのコード体系を区別して扱うことにします。
かくして、入力方法 としては日本語入力(0)[ヒーロー]に加えて次の6つの場合を試す必要があることになります。
符号化方法としては html によるホームページがウィンドウズでもマッキントッシュでも表示できるマルチプラットホームである点を考えるならば、代表的な日本語コードである s-jis とやはり代表的な欧文コード ISO-8859-1 の二つを主に考えればよいでしょう。ただし、これとは別の欧文コード US-ASCII を使うと Netscape Navigator にのみ一部の動作に変化が見られますので、そのときだけ別個に指摘するようにします(Internet Explorer の場合は一切変化がありません)。
使用した環境は Power Macintosh 8500/132(OS は J1-8.0)および Compac Presario(Windows 95)です。使用したブラウザは現在使われている代表的なブラウザ Internet Explorer 4.0 日本版[以下、IE4.0]、Netscape Navigator 4.0 日本版[以下、NN4.0])それぞれのマック版とウィンドウズ版、計4種類です。マック版については英語版(Internet Explorer 4.5、Netscape Navigator 4.7)もテストしましたが、結果に日本語版との違いが見られなかったため以下では言及しません。テストした単語は、日本語の「ヒーロー」とフランス語の「h屍o」です。
以上の条件で具体的に試みた結果を以下に示します。
以下では、1)HTMLテキスト内での処理、2)フォーム内での処理、3)Java Script 内での処理について具体的にみてゆきたいと思います。左側(Demo 1)が実例です(ここでは Netscape Navigator の場合)。上記の4つのブラウザで試験した結果は表(右下)のようになりました。
|
![]() |
欧文コード(iso-8859-1)で仏文を表示するには、文字実体参照、数値文字参照、もしくは仏語入力[2]を使用するのが必要にして十分な条件であることがわかります。ここでは<font face>タグは字体を統一する機能を担っているだけです。上述したようにアクセント付き文字の8ビットでのコード化はプラットフォームにより異なっていますが、文字実体参照、数値文字参照はともに7ビット文字を使用しており、転送中の破損のリスクがおさえられるのでこれを用いることが勧められているようです。
問題は日仏語を混在させる場合です。これにはまず日本語環境を選ばざるを得ません。
そのうえで、IE4.0 ならばマック版でもウィンドウズ版でも 文字実体参照か数値文字参照を使えば混在が可能です。ところが、NN4.0 ですと 文字実体参照、数値文字参照を使用すれば逆に文字化けを起こしてしまいます。NN4.0 のマック版ではかろうじて通常の仏語入力[1]をおこない、それを<font face>タグで欧文フォント指定するという方法がありますが、ウィンドウズ版ではこれも無理です。
ここでは NN4.0(ウィンドウズ版)を除いたブラウザで日仏語を混在させる方法を考えることにしましょう。両方のブラウザで共通に使える単独ファイルの作成は不可能であることは明らかです。どうしたらよいのでしょうか。
少し面倒なやり方ですが、それぞれのブラウザに対応する別々のファイルを作っておき、使用しているプラウザに応じてどちらかを選ばせるというやり方しかないでしょう。この選択プロセスを自動化することはできます。そのためには、Java Script によりブラウザの種類を自動的に判断させ、種類に応じてどちらかふさわしいファイルをロードさせるという方法をとります。ご覧のこのページ自体は選択を自動化させるために以下のような三つのファイル・グループから構成されています。
![]() |
ちなみに、今このページをご覧になっているブラウザはNetscape Navigator ですね?
まずは左のプルダウンメニュー(Demo 2 )をご覧になってください。
|
|
Demo 2 ではご覧のように日本語環境(s-jis)では IE4.0(ウィンドウズ版)以外はどれも文字化けを起こしています。したがって、日本語環境でのフランス語のプルダウンメニュー表示は断念すべきでしょう。プルダウンメニューでの試験結果は表4の通りです。
欧文環境でも、フォントは固定されており<font face>タグは機能していません。結局、実体参照、数値文字参照、もしくは仏語入力[2]を用いることが必要にして十分な条件ということになります(Netscape Navigatorで us-ascii コードを選ぶと、仏語入力[1]で正常に表示され、反対に仏語入力[2]が文字化けを起こします)。
ご覧のように、日本語環境ではアクセント付き欧文をボタン表示することは唯一 IE4.0(ウィンドウズ版)を例外とすれば、不可能です。
|
|
また、ボタン表示では<font face>タグが機能しないばかりでなく、そのまま表示されてしまいますから、使用できません。
以上1-1)〜1-3)をまとめますと、次のようになります。
フォームの<input type=text>あるいは<textarea>の中にアクセント付きの語を入力すると文字化けを起こすことがあります。日本語環境の場合、入力と同時に文字化けしてしまいますし、欧文環境で無事入力できても入力したものを別の入力フィールドや別のフレームに表示させようとするときに文字化けしてしまうことがあります。どのような場合に文字化けするのでしょうか。それを防ぐ方法はないのでしょうか。以下でも h屍o という単語を例にこの問題を考えることにします。
下のフォームに h屍o と入力してみてください(実際には文字化けするかもしれません)。
|
![]() |
このように日本語環境ではアクセント付きの文字は IE(ウィンドウズ版)を除き、文字化けしてしまいます。欧文環境では入力自体は問題ありません。
ここではみなさんがフィールド内で入力したフランス語を別のフィールドで表示します。 h屍o と入力したうえで、show を押してみてください。
|
![]() |
やはり日本語環境では IE(ウィンドウズ版)を唯一例外として、ほかはすべて文字化けしてしまいます。欧文環境では大丈夫です。
予め書き込まれた日本語とフランス語をフォーム表示します。
|
![]() |
やはり日本語環境ではアクセント付きの文字は IE(ウィンドウズ版)を除いてすべて文字化けしてしまいます。タグも表示されてしまいます。欧文環境では3)と6)が正しく表示されます(Netscape Navigatorで us-ascii コードを選んだ場合は、仏語入力[1]と仏語入力[2]が逆転します)。
以上2-1)〜2-3)をまとめますと、次のようになります。
Java Script に埋め込んだフランス語をいかに表示するかを考えます。
Java Script に埋められたフランス語(1〜6)をフォーム表示します。
以下のボタンを押してください。下の枠内に表示されます。
|
![]() |
やはり日本語環境ではアクセント付きの文字はすべて文字化けしてしまいます。タグも表示されてしまいます。欧文環境では6)のみがブラウザ、プラットフォームを問わず正しく表示されます(Netscape Navigatorで us-ascii コードでは、やはり仏語入力[1]と仏語入力[2]が逆転します)。
ボタンをおせば、サブウィンドーが現れます。
|
![]() |
日本語環境で正しく表示される可能性が高いのは3)4)です。欧文環境の場合は、3)4)5)のどれかを用いればすべて正常に表示されます。
数字をおせば、下のウィンドーに表示されます。
|
![]() |
NN(ウィンドウズ版)が日本語環境でも欧文環境でも正常な表示ができません。しかし、実用性の観点からいけば、3-2)と同じ結論になります。
数字をおせば、アラームに表示されます。
|
![]() |
IE(マック版)を除けば、フランス語のアラーム表示は日本語環境でも欧文環境でもできません。
以上3-1)〜3-4)をまとめますと、次のようになります。
Java Script はすでに前章でも扱いましたが、ここではJava Script による自動解答システムの場合のフランス語アクセント処理について考えてみましょう。
自動解答システムとはフォーム入力した答(x)と予めスクリプトに書かれた正解(y)とを比較することにより成り立ちますが、アクセントのついた語の場合にはここで問題が生じます。前章同様、 h屍o という単語を例にこの問題を考えることにします。
[0]には「ヒーロー」、それ以外には h屍o と入力してみてください。下のウィンドーに判定があらわれます。
|
![]() |
日本語環境(s-jis)の場合、マッキントッシュでのみ仏語入力[1]を用いればどちらのブラウザでもうまく機能します。をアスキーコードで示すと x と y の内容は以下のようになり、一致するのだと思われます(式1)。
x=h+%8E +roしかし、すでに Demo 4 でみましたように被試験者がアクセント付きの x を入力するときにマッキントッシュでは必ず文字化けを起こします。これは極めて不自然な入力ですので、アクセント記号付きのフランス語文字を日本語環境で入力することはやはり避けるべきでしょう。結局、自動解答システムとしては日本語環境は望ましくないことになります。
y=h+%8E +ro
欧文環境(iso-8859-1)の場合、答え(x)のフォーム入力は問題ありませんが、比較して一致する正解(y)の方は仏語入力[2]によって予めスクリプトの中に埋め込んであるもの(y6)だけです。 をアスキーコードで示すと次のようになると考えられます(式2)。
x=h+%E9+ro式1と式2を比べますと、マッキントッシュという同一のプラットフォームでも、日本語環境(s-jis)と 欧文環境 (iso-8859-1)とでは入力した が異なるアスキーコードとして読み込まれていることがわかります。結論としては、フランス語を直接フォーム入力するタイプの自動解答システムでは欧文環境を使うべきであり、その場合、フランス語入力[2]を使わざるをえないということになります(Netscape Navigatorで us-ascii コードを選ぶと、仏語入力[1]と仏語入力[2]が逆転します)。
y6=h+%E9+ro
結局、フランス語入力[2]が自動解答システムでは欠かせないことになりますが、それではマックOSによりフランス語入力[2]をおこなうことは不可能なのでしょうか。マックOSで を打てば、ブラウザで と表示されることはすでにみました。その他のアクセントについても次のような「マックでの表示」の通りに入力すれば、フランス語アクセントの「ブラウザ表示」が得られます。
![]() |
これは大変煩雑なプロセスですが、実はマック用のコード変換ソフト Tower of Babel がこれをやってのけてくれます。また、ワープロのマクロにより一括変換することも考えられます。もっとも、一番簡単な方法は仏文入力[1]で作ったホームページを Fetch でアップロードするときに、Fetch の設定でラテン1(iso-8859-1)への自動一括変換を選ぶという方法でしょう。
Page created: 99.4.2 Last modified: 2000.1.10By morita (morita@mail.yamanashi.ac.jp)
<font face>というタグは、新しいヴァージョンのブラウザー(Netscape Navigator 3.0, Internet Explorer 4.0 以降)が対応するタグですが、Netscape Navigator (3.0以降)のマック版ならば日本語環境(つまり文字コードを日本語に設定した状態)でもこれで欧文フォントを指定するだけでアクセント付き文字の表示が可能となりました。この場合、上述の文字実体参照への変換は不要となります。このタグを用いてWindows や Macintosh の定番欧文フォントを指定すれば、同じページ内に日本語とフランス語を混在させることが簡単にできます。