Apple の脅威の通知と金銭目当てのスパイウェアへの対策について

しばらく返答が寄せられていないようです。 再度ディスカッションを開始するには、新たに質問してください。

safariで濁点付きカタカナを変換させない方法

Macの濁点付きカタカナで、濁点が本体と分かれている場合があるかと思います。

「ダ」=「タ」+濁点 のような感じです。

これがSafariでだけ、勝手に「ダ」に変換されてしまうようです。

Safari5.1.7(Windows)及び10.0.3(Mac)のいずれでも同じ現象が出ています。

Firefox、Google Chromeは変換されず元の「タ」+濁点のままなので、自作のWebシステムで不都合が起きています。

このため、Safariで勝手に変換されるのをやめさせる方法があればと思ったのですが、設定画面には見当たりませんでした。

ご存知の方がいらっしゃいましたら、どうぞよろしくお願いいたします。

Mac Pro, OS X El Capitan (10.11.6)

投稿日 2017/01/30 12:11

返信
返信: 8

2017/01/31 00:13 やすどん への返信

ふとおもったけどこれって同じディレクトリにさらにディレクトリを作るときはどうなんだろう。

ん? こんなカンジ?


ユーザがアップロードしたファイル

FinderからもTerminalからもHFS+のFileSystemへはUTF-8-MACで格納されますのでダメです、が、新しいAPFSでは少なくともPOSIXレイヤーからはUTF8格納、UTF8読み出しになるようです。


なので、とりあえずSierraのFinderからAPFS上にUTF-8-MACのダ.txtを作成、Terminalから正規化なしのUTF8のダ.txtを作ればご覧のとうりです。


APFS上にTerminalからUTF-8-MACでFileを作ろうとすると、虹色グルグルの(応答なし)になります。(笑)

2017/01/30 17:27 やすどん への返信

やすどんさん、ご回答ありがとうございます。


> そちらでどういった操作をしたときにSafariが文字コードを変換するのかわかりませんが


php、ASP.NETで作成したWebシステムで現象が発生しています。

テキストの入力欄(<input type="text"・・・></input>)に何らかの文字列を

入力し、Submit→確認画面にPOSTされてきた内容をそのまま表示する、という

簡単なプログラムがあります。

(実際にはサイト攻撃防止のためにそのままは表示しませんが、テストのために

簡略化しています。)

入力欄に「タ」+濁点を入れてSubmitした場合、Safariでは「ダ」に変換されて

確認画面に表示されます。

FireFox等では、そのまま「タ」+濁点で表示されます。

このため、POST時に強制変換しているのだと思います。


> たとえ文字コードが変わっても同じものとみなされるべき文字の文字コードに変換する

> のであれば、問題ないようなシステムを作るのが望ましいとおもいますよ。


うーん、こちらで意図的に変換するのはかまわないのですが、勝手に変換される

のはどうなのかな・・・と。

たぶん、Appleは親切のつもりなんでしょうけど、それって「タ」+濁点が世間

一般的じゃないとApple自身が認めていることになるので、だったらMac内も全部

「ダ」に統一してくれー!と思います。別に、Mac内で「ダ」を扱うのは特に支障

ないようですし・・・。(と、ここで言ってもしょうがないのですが。)


最終的に、変換かけるしかなければそのようにしますが、他にも困っている方、

なんらかの解決方法を編み出した方がいらっしゃるのでは、と思って、質問しま

した。

単に検索に引っかからない程度の問題ならたいしたことは無いのですが、ASP.NET

の場合、結構致命的な問題が発生するので・・・。


> MacOS(OSX)の場合、キーボードから一般的な操作で1文字のコードポイント+

> 「濁点(U+3099)」の文字を打つ事は無いと思います。


少なくとも、かな入力にしている場合はあるようです。

https://discussionsjapan.apple.com/message/100943466#100943466


> ふとおもったけどこれって同じディレクトリにさらにディレクトリを作るときはどうなんだろう。


たぶん、ですが、ファイル名やディレクトリ名は自動的に「タ」+濁点に変換

されているような気がします。(El Capitanで確認。)

「ダ.pdf」と「タ濁点.pdf」は同一名称のファイルとして扱われました。

また、そのファイル名を確認したところ、どちらも「タ」+濁点になっていまし

た。・・・が、あまりMacは詳しくないため、自信はありません・・・。

2017/01/30 14:15 pyoko_pyoko への返信

Safari5.1.7(Windows)及び10.0.3(Mac)のいずれでも同じ現象が出ています。

 ちょっと環境が古すぎると思う。


 で、Unicodeには合成文字があります。

まさに、

「ダ」=「タ」+濁点 のような感じです。

これです。

1文字のコードポイント「ダ」で表現しても良いし、「タ」+「濁点(U+3099)」で表現してもいいです。

これはMacに限った事ではなくどちらもユニコードの正しい表現方法です。

ただ、汎用的な使い方では両方が存在していると非常に面倒な事になります。

たとえば濁点がついた文字を含む単語を検索するとき等は引っかからない可能性があります。

なので、一文字のコードポイントで常に表現するのが良いと思いますよ。

たしかWinの古い環境だと後者を使ってたかも。

2017/01/30 14:57 やすどん への返信

やすどんさん、ご回答ありがとうございます。


> ちょっと環境が古すぎると思う。


Windowsはこれ以降Safariの更新がないので、最新(最終)状態となります。

Macは El Capitan 10.11.6 で、つい数日前にSafariを最新状態に更新したばかり

なので、Safari 10.0.3 は古くないと思うのですが・・・。


「ダ」、「タ」+濁点 とも正しいのはそれでOKなのですが、Safariが勝手に

一方(「ダ」)に揃えてしまうことに困っています。

最悪、現在登録されているデータを全部「ダ」に変換して揃えた上で、FireFox等

で登録するときにも強制的に「ダ」に変換かけるということも考えていますが、

Safariが勝手なことを止めてくれるのが一番助かるので、その方法が無いかと思い、

質問させていただきました。


よろしくお願いいたします。

2017/01/30 15:24 pyoko_pyoko への返信

 ごめんなさい。

10.0.3(Mac)

 これをOSX10.0.3ってよんじゃいました。

Safari 10.0.3なら古すぎるって事は無いですね。

でもWin 版Safariは開発が終わっているのでどうしようもないと思う。


で、この濁点つき仮名の問題は以前から存在しています。

一文字ひらがなの「が」

一文字カタカナの「ガ」

ひらがな「か」+「濁点(U+3099)」の「が」

かたかな「カ」+「濁点(U+3099)」の「ガ」

(これに半角カタカナの「ガ」もあるかも)

検索などではこれらの文字が同じでなければいけません。(文字コードは違うのにね)


 そちらでどういった操作をしたときにSafariが文字コードを変換するのかわかりませんが、たとえ文字コードが変わっても同じものとみなされるべき文字の文字コードに変換するのであれば、問題ないようなシステムを作るのが望ましいとおもいますよ。


Safariの文字コード変換に関する環境設定とかは見た事がないので、そちらの状況がSafariの仕様による物なのか、あるいは不具合なのかはわかりません。


MacOS(OSX)の場合、キーボードから一般的な操作で1文字のコードポイント+「濁点(U+3099)」の文字を打つ事は無いと思います。

そういった意味ではSafariが1文字のコードポイントの濁点付きかなに変換するのは正しい動作なのかもしれない(それともおせっかいな動作?)。


解決方法の提案でなくてごめんなさい。


追記:

ふとおもったけどこれって同じディレクトリにさらにディレクトリを作るときはどうなんだろう。

トラブルのが怖くて思いついたけど試せていない。

例えば「が ぐ」ってフォルダを作るときに

一文字ひらがなの「が」 一文字ひらがなの「ぐ」

一文字ひらがなの「が」 ひらがな「く」+「濁点(U+3099)」の「ぐ」

ひらがな「か」+「濁点(U+3099)」の「が」 一文字ひらがなの「ぐ」

ひらがな「か」+「濁点(U+3099)」の「が」 ひらがな「く」+「濁点(U+3099)」の「ぐ」

の4パターンが存在しちゃいますね。

OSXでちゃんと矯正してくれるのかな。

2017/01/30 19:22 pyoko_pyoko への返信

HTML のフォームに文字を入力する際、Safari では強制的に「タ+濁点」が「ダ」に変換されます。これは送信時ではなく、文字を入力した段階のようで、フォームに文字をペーストするとその時点で変換されてます。その理由は概ねおっしゃるとおりでしょうね。また、この挙動を制御するオプションはないと思います。


なので、お使いの Web システムの方で受け取ったデータを処理する (NFC か NFD で正規化する) しかないのではと。OS X に最初から入ってる php であれば iconv 関数が使えるので、それで対処してはどうでしょうか。


注意点としては、Safari ではユニコード準拠の NFC で文字を正規化しているので、その時点で一部の文字が化けていることです。これは対処のしようがないと思います。


あと、php の iconv 関数は、BMP (Basic Multilingual Plane) の範囲を超えると正しく処理できないのと、文字数が多いと異常終了するという厄介な問題があるので、その辺の事前チェックもしておいた方が良いでしょう。


それかそこだけ perl の助けを借りても良いかも。ちなみにシステムコマンドの iconv(1) は php と同じ問題を抱えてるので代わりにはなりません。


ーーーーー


あと、ファイル名についてですが、


> たぶん、ですが、ファイル名やディレクトリ名は自動的に「タ」+濁点に変換されているような気がします。(El Capitanで確認。)


おっしゃるとおりです。「タ+濁点」で入力しても「ダ」で入力しても「タ+濁点」に変換されます。なので、フォルダ「タ+濁点」が既存の場合、同じディレクトリにフォルダ「ダ」を作ろうとしても「ダ」=>「タ+濁点」と、同名となるため作成できないと。

2017/01/31 11:01 Hiro__S への返信

Hiro.S さん、ご回答ありがとうございます。


なるほど、入力時にはもう変換されているのですね。

やはり、変換を止めさせる方法はありませんか・・・。


変換関数等の情報もありがとうございました。

こちらも、やるとなるといろいろと難しいのですね・・・。どうするか考えたいと思います。

2017/01/31 11:04 亀どん への返信

亀どん さん、ご回答ありがとうございます。


確かに、私はFinderからしか試しませんでした。

「タ」+濁点に自動変換されるのはMacの機能(仕様)ではなくFinderの機能なのですね。

となると、ますます、「ダ」に統一してくれないかなーなどと思ってしまいますが・・・まあ、

これはWindows使用者の勝手な言い分なのでしょうね。


Macももうちょっと勉強してみます。

ありがとうございました。

safariで濁点付きカタカナを変換させない方法

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple ID を使ってご参加ください。