• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Mac投稿文字化け回避するには?)

Mac投稿文字化け回避方法とは?

このQ&Aのポイント
  • Macからの投稿文字化けを回避する方法を教えてください。そもそも、変な漢字などに化けるのでなく、???に化けるということは、ソースのcharsetを日本語用に変えるしかないのでしょうか?
  • コードISO-8859-1なのに、WinからのPOSTは問題なく日本語表示されるのは何故ですか?
  • Macからの投稿文字化け問題について他のMacユーザの状況はわかりません。Mac未経験の私には解決方法がわかりません。宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • studio_0
  • ベストアンサー率50% (5/10)
回答No.1

質問の2番ですが、ソースの文字コードを日本語用に変えるよりもUTF-8など、多国語対応した文字コードにされてはいかがでしょうか。 質問の3番ですが、POSTは分かりませんが、日本語が表示されるのはWinのブラウザがISO-8859-1では表示できないと判断して、SJISやUTF-8で表示しているのはないでしょうか。 質問の1番と4番ははっきりとは原因がわからないので、自分の経験と一般論を含めて下記に書きます。 おそらくMacから送信された2バイト文字の文字コードが正しくサーバー側で認識されていないのではないでしょうか。MacのSafariからはおそらくUTF-8又は、そのページのエンコーディングでエンコードされてデータが送信されていると思います。これをサーバー側が正しく認識できているかという点がポイントになると思います。 一般的にWebアプリケーションで文字コードを正しく認識して変換する必要があるところは下記のような場所です。 1.<クライアントから送信> (a)データはUTF-8またはクライアントの設定に依存したエンコーディング 2. <サーバー受信>  (b)DBの文字コードに変換する 3. <DB書き込み> 4. <DBから取り出し>  (c)DBの文字コードからWebページの文字コードへ変換 5. <表示> (a)については、正しく認識できるかは使用しているサーバー側のプログラミング・スクリプト言語の設定やサーバープログラムの設定によります。 (b)については、DBの設定とサーバー側のプログラムの修正が必要です。 (c)については、Webページの設定、またはプログラムの修正が必要です。 質問の4番ですが、(a), (b), (c)でのいずれかに影響を与えるサーバー側の設定変更または、サーバー側のプログラムのバージョンアップがあったのではないでしょうか。 私も以前、(a), (b), (c)の各ポイントでの文字コードが正しく認識・変換されず、???になったことがありました。

Qchan2006
質問者

お礼

ありがとうございます。大変参考になります。 もう少しお願いします。

Qchan2006
質問者

補足

詳細のご回答誠にありがとうございます。 もっと教えてください。すみません。 > 質問の2番ですが、ソースの文字コードを日本語用に変えるよりもUTF-8など、多国語対応した文字コードにされてはいかがでしょうか。 サーバ・管理者は英国なので、サーバ側charset=ISO-8859-1をUTFなどに変更してもらうのは困難だと考えます。 ISOのままでは、Macからは無理なのでしょうか? > MacのSafariからはおそらくUTF-8又は、そのページのエンコーディングでエンコードされてデータが送信されていると思います。これをサーバー側が正しく認識できているかという点がポイントになると思います。 クライアント側から対応できることは何でしょうか? クライアント側のエンコードをISOにして入力・送信するというのは無謀でしょうか? 私はMacを持っていないため、テストできません。 宜しくお願いします。

その他の回答 (2)

  • studio_0
  • ベストアンサー率50% (5/10)
回答No.3

「回答に対するお礼」の欄にご記入頂いた内容で間違いないです。

Qchan2006
質問者

お礼

ご丁寧にありがとうございます。

  • studio_0
  • ベストアンサー率50% (5/10)
回答No.2

クライアント側からだとすると、ちょっと良い方法が思いつかないです。Windowsから送られているのと同じエンコーディングで送信できるプログラムがあれば解決できると思いますが、申し訳ございませんが私は知らないです。Macで動くWebブラウザを数種類試してみるしかないと思います。 また、SafariでISOにして送っても本当にISO-8859-1に変換されてしまったら日本語は送信できません。また、それでもSafariではUTF-8で送信される可能性が高いと思います。 サーバー側の設定が変更できなくとも、CGIなどが変更できれば対処できると思いますが、それも無理だとすると上記のようにブラウザを変更してみるしかないと思います。

Qchan2006
質問者

お礼

ありがとうございました。 FireFoxで解決したそうです。 文字化け回避の方法として、以下の内容で質問者に回答します。 1. 変な漢字などに化けている場合は、ブラウザのエンコード設定を変更して確認する。 1を対処してもなお化ける場合、または???に化ける場合 サーバ側で変更できる場合、 2. 文字コードをUTF-8に変えてもらう。 3. <クライアントから送信>   <サーバー受信> DBの文字コードに変換する   <DB書き込み>   <DBから取り出し> DBの文字コードからWebページの文字コードへ変換   <表示>   の各段階でコードを統一してもらう。 サーバ側変更不可の場合、 4. クライアント側Macのブラウザを変更する。 5. Winで日本語表示される理由は、   WinのブラウザがISO-8859-1では表示できないと判断して、SJISやUTF-8で表示していると考えられる。 ※もし私の認識が違っていたらお手数ですがご指摘下さい。 ご丁寧なご回答誠にありがとうございました。 大変参考、勉強になりました。

関連するQ&A

専門家に質問してみよう