円マークがバックスラッシュに変わる

Mozilla Thunderbird のサポートフォーラムです。

モデレータ: Forum Moderators

あたたたたたたた

円マークがバックスラッシュに変わる

投稿記事 by あたたたたたたた »

メール作成時は正しく半角円マークが入力出来て表示もされているのですが、そのメールを送信するとバックスラッシュとして表示されてしまいます(自分の環境で)。
正しく半角エンマークを表示するにはどのようにすれば良いでしょうか?
アバター
Cai
Administrator
記事: 2794
登録日時: 2005年6月23日(木) 23:29
お住まい: 東京
連絡する:

Re: 円マークがバックスラッシュに変わる

投稿記事 by Cai »

https://ja.wikipedia.org/wiki/%E5%86%86 ... 8%E5%8F%B7
Wikipedia の「円記号」の記事 (特に「コンピュータによる扱い」と「Unicodeが持つ問題(円記号問題)」の節) および
https://ja.wikipedia.org/wiki/%E3%83%90 ... 7%E3%83%A5
「バックスラッシュ」の記事 (特に「バックスラッシュと円記号」の節)

を読んでいただくのが早いかと思います。

Thunderbird ではバージョン 52 以降、日本語メールを送信する際の既定のエンコーディングが UTF-8 になっているため、円記号問題にぶち当たります。
日本語キーボードには ¥ が印字されたキー (通常バックスペースキーの左横) と \ が印字されたキー (右シフトキーの左横) がありますが、どちらで入力しても Unicode 環境では バックスラッシュ (\, U+005C, REVERSE SOLIDUS) として扱われます。
円記号を明示的に使う場合には、全角円記号 (¥, U+FFE5, FULLWIDTH YEN SIGN) を使うのが簡単です。
半角円記号 (¥, U+00A5, YEN SIGN) を使う必要がある場合には、日本語 IME から明示的に選択する必要があります。

例: Microsoft IME では、¥ あるいは \ を変換するときに「半」となっているのがバックスラッシュ (\, U+005C)、「環境依存」となっている方が半角円記号 (¥, U+00A5)、「全」となっているのが全角円記号 (¥, U+FFE5) になります。
添付ファイル
2022-07-21.png
2022-07-21.png (8.83 KiB) 閲覧された回数 7776 回
[Desktop] Windows 11 Pro 25H2 / Intel Core i7-14700 / NVIDIA GeForce RTX 3050 6 GB / 64 GB Memory
[Laptop] Windows 10 Pro 22H2 (64bit, ESU) / Intel Core i5-520M vPro / Intel HD Graphics / 8 GB Memory
[Android] Android 13.0 (arm64) / Xperia 5 III (XQ-BQ42)
常用環境: Firefox ベータ版、リリース版 (Win64 x86-64, Android), Thunderbird ベータ版、リリース版 (Win64 x86-64)
テスト環境: Firefox (ESR, Nightly, Win64 x86-64, Android)

Cai/1.0 (Homo sapiens; N; Homo sapiens chemist; male; rv:0.0.4.3+)
-- いつまでたっても nightly
あたたたたたたた

Re: 円マークがバックスラッシュに変わる

投稿記事 by あたたたたたたた »

環境依存の半角円マークを入力すると正しく表示されるようになりました。
ありがとうございます。

しかし面倒ですね。
今まで他のメーラーではこんなことなかったのですが…
アバター
EarlgreyTea
記事: 4593
登録日時: 2014年2月22日(土) 00:59
お住まい: 北海道

Re: 円マークがバックスラッシュに変わる

投稿記事 by EarlgreyTea »

あたたたたたたた さん、EarlgreyTea と申します。

本件に限って言えば、Unicode で追加定義された本当の半角円記号 (¥, U+00A5, YEN SIGN) とは別の問題だと思います。
誰が受け取っても半角円記号でなくてはいけないなら U+00A5 を使う必要がありますが、我々が通常使ってる半角円記号は (\, U+005C, REVERSE SOLIDUS) の方ですので。

これはフォントの問題なのです。
日本語フォントならバックスラッシュは円記号として表示されます。
ちなみにこのフォーラムでバックスラッシュが円記号で表示されないのは、サイト側のフォント設定が、

コード: 全て選択

font-family: "Lucida Grande", "Trebuchet MS", Helvetica, Arial, sans-serif;
という具合になっており、半角英数文字だと Trebuchet MS などが優先して使用されるためです。
( sans-serif まで該当フォントがなかった場合に、ブラウザー設定のメイリオなどが使われます)

話を Thunderbird に戻します。
日本語版 Thundebird だとフォント設定の既定値は、下記に示す設定になっているはずです。
対象言語_日本語.jpg
「対象言語」の選択がポイントです。
フォント設定は「対象言語」ごとにあるのです。

対象言語「日本語」の設定は、日本語版においてはまずメール作成画面で使われます。
したがって、メール作成中の表示はバックスラッシュが円記号になってます。

そのメールを UTF-8 のテキストエンコーディングで送信し、それを受信したとします。
Thunderbird は UTF-8 のメールを表示する際、対象言語「他の表記体系」の設定を使います。
そしてその既定値は下記の通りです。
対象言語_他の表記体系.jpg
日本語フォントではありませんので、バックスラッシュはバックスラッシュとして表示されることになります。

では、メール表示の際、対象言語「日本語」の設定はいつ使われるのでしょうか。
それは ISO-2022-JP (いわゆるJISコード) の場合です。
昔は日本語のメールといえば送信・受信とも ISO-2022-JP が普通でした。
しかし、UTF-8 のメールが標準となったためこのようなちぐはぐな問題が生じることになりました。

主に日本語のメールを使うのであれば、対象言語「日本語」と対象言語「他の表記体系」の両方とも、同じ日本語フォント設定にしておくことをおすすめします。
返信する