会員情報の変更等で
確認メールを配信しています

その際、内部で
文字コードをJISに変換してメールをしていますが
届いたメールは特定の漢字について文字化けしています

たとえば
「髙」たか

「﨑」さき

といった漢字です(環境依存文字)

このような漢字はメールではどのように扱えば???

お客様に「使うな」とは言えないですし・・・

このQ&Aに関連する最新のQ&A

A 回答 (1件)

JISでは無理、UTF-8にする必要があります。



ただし、古いメールソフトではUTF-8を表示できないことがあるので要注意です。

その手の文字を送信できるようにすると、受信者のメールソフトをすべてUTF-8対応にする必要があるので、対応するかはお客様の判断次第です。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q文字化けって英語で・・・? 

仕事で外国からのメールを受ける事がしばしばありますが、
時々名前などが文字化けしているメールを受け取ります。
本文は英語で書いてくれているのでいわんとすることは分かるのですが、
文字化けでお名前がわからないということなどを相手に伝えたいときは
英語ではどのように表現するればよいでしょうか?
また、文字化けとは英語でどういうのでしょうか?

Aベストアンサー

文字化けそのものを知っている相手(1 バイト文字の国の人)には "The page turned into garbage." と言いました。うちの会社だけだったかもしれませんが (^^;;
aqua さんが書かれているように、相手も 2 バイト文字の国の人でしたら、"Japanese fonts don't support the characters at the bottom of your e-mail. Would you mind writing it in English?" など、「日本語のフォントでは対応していない文字です。」と伝えてはいかがでしょうか。

Q文字化けにどう対処したら・・・PHPをShift_JISで書いて、MYSQLに格納しました

最初からEUCで書けばよかったのでしょうが?
知識が無くて、全部Shift_JISで書きました。
(文字化けをなめていました。。)
結構、文字化けすることが多くて修正するしかなくなってきましたが
全部書き直さずに改良するにはどうしたらいいでしょうか?

PHP Version 4.4.2
MYSQL 4.0.26

にデータはきちんとShift_JISで入っているようです。
**phpmyadminでShift_JISで表示させるとちゃんと表示します、
 それ以外で表示させると文字化けします。

フォームを使って、MYSQLに格納して
後で、呼び出して表示するだけです。

どうか宜しくお願いいたします。

相変わらず、要領の得ない質問でスミマセン。

Aベストアンサー

PHPを使って、MySQLからデータを抽出し表示させると文字化けするということでしょうか?

mb_convert_encodingなどを使って、文字コードを変換させてみてはどうでしょうか?

Q海外からの中国語や英語のメールやSMSを文字化けなしに受信するには

海外からの中国語や英語のメールやSMSを文字化けなしに受信するには

海外から発信される中国語や英語のメールやSMSを受け取る場合、文字化けせずに受け取るにはどうすればよいでしょうか。

文字化けは携帯電話の機種によって、異なりますか?また、海外からのメールやSMS発信の場合、どんなフォントやシステムを使えば、日本の携帯に文字化けなしに送れますか。

また、海外のPCや携帯から日本語で送信されたメールが、携帯に届くと、日本語の文章なのに、文字化けしていることがあります。この問題を解決するには、相手にどんなフォントやシステムを使って文章を書いてもらえばいいでしょうか。

おわかりになる点がひとつでもありましたら、教えて下さい。お願いします。

Aベストアンサー

中国語で作成された物はともかくとして
相当変った環境でない限り
英語で作成された物が文字化けするとは思えません
(ですので以下の話は中国語限定)

文字化けする際は使っている機種によって違うでしょう
中国語が表示されない機種(フォントがない機種)に
中国語で送っているわけですから

>海外のPCや携帯から日本語で送信されたメールが
>携帯に届くと、日本語の文章なのに、文字化けしていることがあります。
>この問題を解決するには、相手にどんなフォントやシステムを使って文章を書いてもらえばいいでしょうか。
これは途中のサーバ経路で日本語対応などしていないと化ける可能性があります
その場合どうしようもありません

日本語で書いていてもメールのエンコード設定や使用している
フォントによっては化けることがあります

文字化けの理由については幅が広いのでメールヘッダ見たり中継サーバ
確認したりしないと一概に  これが原因  ということはいえません

Qファイルをアップロードすると文字化けしてしまう。

PHP初心者です。カテゴリで同じような質問を捜したのですが見つからず、質問させて頂きました。よろしくお願い致します。

windowsXPでPHP4.4.4+MYSQL+Apacheを使用しており、PHPの内部コードはEUC-JPで出力はSJISです。
写真のアップロードとコメントをつけたいと思い本を見ながら↓を作成したのですが、
写真(ファイル名)&コメントをブラウザで表示すると文字化けしてしまって困っております。

どうすれば文字化けせずに表示できるようになるか教えて頂ければと存じます。

※up.php(写真の選択&コメントをする画面です)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<title>登録</title>
</head>
<body>
<form action="kakuninn.php" name="make1" method="post" enctype="multipart/form-data">
<p>
<input name="image1" size="40" type="file">
<input type="image" name="image_up" src="../img/upload.gif" alt="アップロード">
</p>
<p>コメント</p>
<p>
<input name="kome" type="text" value="" maxlength="50">
</p>
<p>
<input type="submit" name="Submit" value="送信">
</p>
</form>
</body>
</html>

※kakuninn.php(ファイル名とコメントを確認する画面です。)
<?php
print("文字コード(画像):".mb_convert_encoding($image1,"auto")."<br>");
print("文字コード(コメント):".mb_convert_encoding($kome,"auto")."<br>");

print("画像:".$image1."<br>");
print("コメント:".$kome."<br>");
?>

例えば、写真欄に「写真1.jpg」、コメント欄に「コメント」として、送信ボタンを押すと↓の結果となります。

文字コード(画像):C:\WINDOWS\php24A.tmp
文字コード(コメント):?R?????g
画像:C:\WINDOWS\php24A.tmp
コメント:?R?????g

PHP初心者です。カテゴリで同じような質問を捜したのですが見つからず、質問させて頂きました。よろしくお願い致します。

windowsXPでPHP4.4.4+MYSQL+Apacheを使用しており、PHPの内部コードはEUC-JPで出力はSJISです。
写真のアップロードとコメントをつけたいと思い本を見ながら↓を作成したのですが、
写真(ファイル名)&コメントをブラウザで表示すると文字化けしてしまって困っております。

どうすれば文字化けせずに表示できるようになるか教えて頂ければと存じます。

※up.php(写真の選択&...続きを読む

Aベストアンサー

日本語のエンコードがよくわかりませんが、
1、出力がSJISなのに、charsetをeuc-jpにして本当にいいですか?
2、mb_convert_encodingの二番目の引数をsjisなどで明示したほうがいいでしょうか。
3、kakuninn.phpで$image1は確かに文字列ですか?

Q英語サイトの文字化けで困ってます

Macで英語のサイトを見ると文字化けすることがあって困っています。
何か重要なフォントを消してしまったのでしょうか?

例えば英語のウィキペディアのサイトが文字化けします。
http://en.wikipedia.org/wiki/Main_Page
しかし英語のヤフーは文字化けしてません。
http://m.www.yahoo.com/

Fierfox、Safariどちらで見ても同じことがおこります。
Mac 10.4.11です。

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

Aベストアンサー

#2です。
解決してよかったですね。

>FontBookでHelvetica.dfontが最優先に使われるように設定するにはどうしたらよいのでしょうか?
この方法は、Font BookでHelveticaの項目に表示される「Helvetica.dfont」以外のフォントを無効にします。
Font Bookを起動し、「フォント」列の中からHelveticaを選択し、右向きの三角形をクリックして内容を表示します。
フォント名の右側に何も印が付いていないものが現在使われているフォントです。そのフォントを選択し、右クリックして、使用停止を選択すれば、そのフォントが無効になります。フォントメニューから「フォント情報を表示」を選択すると、そのフォントのファイル名などが表示されますので、どこにインストールされているフォントなのかを確認して作業してください。

しかし、、
そうすると、Illustratorなどでは、他のフォントを使用できなくなり、いちいちフォントの有効、無効を切り替える必要が生じます。さきほどは、何が原因かを探るために、この方法を紹介しましたが、現実的ではありません。ですので、別の方法を考えたほうがいいかと思います。

Illustratorなど、アドビシステムズ社のソフトウェアだけで使用するフォントでしたら、お勧めとしては、
HD>ライブラリ>Application Support>Adobe>Fontsフォルダの中に使用したい他のヘルベチカ系フォントを入れてください。
そうすれば、Illustratorなど、アドビシステムズ社のソフトウェアでだけ、他のヘルベチカ系フォントが使用できるようになります。

もう1つの方法は、置き換わっているフォントを特定し、そのフォントを使用しないようにする方法です。
元の状態(文字化けしている状態)に、フォントを戻します。
文字化けしているページに移動し、文字化けしている部分の文字を数文字コピーします。
テキストエディットなどにコピーし、そのフォントが何であるかを特定します。
特定したら、そのフォントだけ、フォントブックで無効にします。
再度、文字化けしているページを表示し、まだ文字化けしているようなら、また同じ作業を繰り返します。

#2です。
解決してよかったですね。

>FontBookでHelvetica.dfontが最優先に使われるように設定するにはどうしたらよいのでしょうか?
この方法は、Font BookでHelveticaの項目に表示される「Helvetica.dfont」以外のフォントを無効にします。
Font Bookを起動し、「フォント」列の中からHelveticaを選択し、右向きの三角形をクリックして内容を表示します。
フォント名の右側に何も印が付いていないものが現在使われているフォントです。そのフォントを選択し、右クリックして、使用停止を選択すれば、そ...続きを読む

Q全角ファイル名をアップロードすると文字化け

複数のファイルをアップロードできるスクリプトを作成しています。
サーバはWindows、PHPのバージョンは5です。
利用者の要望で日本語のファイル名もアップロードできるようにしたいのですが、文字化けします。

http://okwave.jp/qa1724442.html
を参考にし、下記のスクリプトを
move_uploaded_file($att_tmp, mb_convert_encoding($att_name,"UTF-8"));
と、変更もしてみましたが、うまくいきません。
$valueは文字化けせずに表示されていますが、サーバ上ではファイル名が「逋コ陦ィ謇ソ隱阪す…」という風に化けてしまいます。
対策を教えて頂けませんでしょうか。
よろしくお願いします。

if (isset($_POST["submit"])){
//添付ファイル用変数
foreach($_FILES["att"]["error"] as $key => $error_a){
if($error_a == UPLOAD_ERR_OK){
$att_na = $_FILES["att"]["name"][$key];
$att_tmp = $_FILES["att"]["tmp_name"][$key];
$att_type = $_FILES["att"]["type"][$key];
$att_size = $_FILES["att"]["size"][$key];

if (strlen($att_na)>0){
//ファイル移動
list($att_nam,$k) = explode(".",$att_na);
$ymdhis = date("YmdHis");
$att_name = "{$att_nam}-{$ymdhis}.{$k}";
move_uploaded_file($att_tmp, "file/$att_name");

$att_name_ar[] = $att_name;
foreach($att_name_ar as $value){
echo $value."<br>";

}
}
}
}

複数のファイルをアップロードできるスクリプトを作成しています。
サーバはWindows、PHPのバージョンは5です。
利用者の要望で日本語のファイル名もアップロードできるようにしたいのですが、文字化けします。

http://okwave.jp/qa1724442.html
を参考にし、下記のスクリプトを
move_uploaded_file($att_tmp, mb_convert_encoding($att_name,"UTF-8"));
と、変更もしてみましたが、うまくいきません。
$valueは文字化けせずに表示されていますが、サーバ上ではファイル名が「逋コ陦ィ謇ソ隱阪す…」とい...続きを読む

Aベストアンサー

アップロードする目的だけでは不可能のようです。

アップロードしたファイルを、
またユーザーがダウンロードする事があるのでしたら、
アップロードする元の2バイト文字を含むファイル名を、
MySQLなどのデータベースに保存しておいて、
実際のアップロードファイルは半角文字に連番などを付けて管理し、
ダウンロード時にデータベースから参照して、
保存名の初期値に元の名前を表示するようにされたらいいと思います。

それぞれのやり方はわかっていたのですが、
他が忙しくなったので完成せずじまいになっているので、
サンプルコードを提供できなくてすみません。

Q自作の英語版ホームページが文字化け

自作の英語版ホームページが文字化けしていないかどうか
確認するために、ブラウザで「表示」→「エンコード」を
変更して見たところ、「自動選択」では全く問題がなかったのですが、「西ヨーロッパ言語」(Windows)では、若干文字化けしていました。
英語版の場合、英語圏で文字化けすることなく見ることができれば良いと思うのですが、ブラウザで確認する場合は
エンコードを何に変更して見るのが最も適当でしょうか。

Aベストアンサー

英語圏では一般的にISO8859-1が標準的に使用されているようです。METAタグには以下のように記述します。
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

METAタグで記述しておけばブラウザでエンコードを切り替えなくても自動的に判別してくれます。
文字化けしやすい例としては全角のスペースですね。
多国語に対応したエンコードとしてはUTFがあります。

Q文字コードをEUCからSHIFT-JISに変更しました。

 データベースの設定で今まで文字コードをEUCに設定していましたが、一般的にはSHIFT-JISを使用した方が良いというアドバイスを受けて、今回からSHIFT-JISに変更することにしました。

 データベースの設定でSHIFT-JISに変更し、
各テーブルのデータもSHIFT-JISで文字化けが起こらないようにエンコーディングもしました。

 そして、各phpファイルの保存形式をEUCにしていたものを全てSHIFT-JISとして保存もしました。しかし、ページによっては文字化けがまだ起こっていたり、表示すらできないページもあります。
きちんと表示されているページもありますが。

 何故、このような差が起こるのでしょうか?
下記は、ページが表示されないphpファイルのソースです。

ファイルをEUC形式で保存すると画面は崩れていますが表示されます。
しかし、SHIFT-JIS形式で保存すると真っ白になります。

ちなみにソースは、適当なものなのでその部分はスルーしてください。
いろいろ試みたのですが解決できず、本当に困っています。
知恵をお貸し下さい。
よろしくお願い致します。

<?php

echo <<< HTML
<html lang="ja">
<head>
<style type="text/css">
<!--
div {
border: 1px solid #77aaff;
background-color: #ccccff;
text-align: center;
font: italic 0.8em Verdana;
}
-->
</style>
<script type="text/javascript">
<!--
var ele, max, count = 0;
var widthList = new Array();
function getGraph() {
ele = document.getElementsByTagName("div");
if (!ele) return;

var tmp = new Array();
for (var i = 0; i < ele.length; i++) {
tmp[i] = widthList[i] = ele.item(i).style.width.replace("px", "");
}
//max = tmp.sort(function(a, b) { return(b - a); })[0];
max = 10000;

(widthList) && graph();
}
function graph() {
for (var i = 0; i < widthList.length; i++) {
var now = (count >= widthList[i]) ? widthList[i] : count;
ele.item(i).innerHTML = ele.item(i).style.width = now + "px";
ele.item(i).innerHTML = ele.item(i).style.width.replace("px", "P");

}

if (count < max) setTimeout("graph();", 20);// グラフを表示する速さ
count += 1;// グラフの増加量 (px)
}
// -->
</script>
</head>
<body onload="getGraph();">
<form action="../AAA/AAA.php" method="POST" name="myFORM">

<center>
ポイントレース
</center>

<br>
<br>

<table width="15%" align="right" style="border:solid 1px #000000">
<tr>
<td>$Nameさん</td>
</tr>
<tr>
<td>総ポイント</td><td>$TotalAMT</td>
</tr>
<tr>
<td>今月のポイント</td><td>$Mpoint</td>
</tr>
</table>

<br>
<br>
<br>
<br>

<table border="2" width="100%">
<tr>
<td>

<table border="0">
<tr>
<td>
HTML;

?>

 データベースの設定で今まで文字コードをEUCに設定していましたが、一般的にはSHIFT-JISを使用した方が良いというアドバイスを受けて、今回からSHIFT-JISに変更することにしました。

 データベースの設定でSHIFT-JISに変更し、
各テーブルのデータもSHIFT-JISで文字化けが起こらないようにエンコーディングもしました。

 そして、各phpファイルの保存形式をEUCにしていたものを全てSHIFT-JISとして保存もしました。しかし、ページによっては文字化けがまだ起こっていたり、表示すらできないページもあ...続きを読む

Aベストアンサー

> 一般的にはSHIFT-JISを使用した方が良いというアドバイス

そのアドバイスに従わない方がよかったのではないかと思います。
shift-JISよりはeuc、eucよりはutf-8の方が、データベースの
コード体系として望ましいと思います。

可能であればutf-8に変更するのがよいと思いますが、
むずかしそうであれば、eucに戻すことを検討なさってみてはいかがでしょうか。

Q「文字化け」を英語で…。

ある海外の方と知り合い、文通をする事になりました。
相手の方が住所を教えて下さったのですが、
そこだけ文字化けしていたので読めませんでした。

「文字化けしているのでもう一度メールを送ってくれませんか?」
と言いたいのですが、『文字化け』は英語で何と言うのでしょうか?

Aベストアンサー

文字化けはfunny characters // garbled characters です。

下記の文章で伝わるかと思います。
I got a garbled e-mail from you. Could you e-mail me again?

QUTF8のPHPコードから日本語をINSERTするとphpMyAdmin上で文字化けしてしまう

・WindowsXP(SP2)IIS5.1
・PHP 5.2.5 Win32
・MySQL 5.1.22 RC Win32
・phpMyAdmin 2.11.4

多言語(日本語と中国語)を扱える簡単なシステムを試作しているのですが、
test1.php(UFT8-BOM無し)からINSERTしたレコードをphpMyAdminから閲覧
すると日本語が「&egrave;&sup2;&iexcl;&aring;›&pound;&aelig;&sup3;•&auml;&ordm;&ordm;&aelig;」などと文字化けしまくっています。

test2.phpからSELECTすると、まったく文字化けなく呼び出せます。
また、phpMyAdminから直接INSERTしたレコードば文字化けしません。

当初、MySQL4.1.22-win32や、phpMyAdmin 2.8.2.4だったので、
冒頭の最新バージョンにしたりもしてみましたがだめでした。

過去ログや、Webで昨日さんざん調べてみて、確認したのは以下の設定です。

(1) C:\Program Files\MySQL\MySQL Server 5.1\my.ini:
[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8

(2) C:\Inetpub\wwwroot\phpMyAdmin\libraries\config.default.php
$cfg['DefaultLang'] = 'utf-8';
$cfg['DefaultConnectionCollation'] = 'utf8_general_ci';
$cfg['DefaultCharset'] = 'utf-8';


(3) MySQL Server Instance Config Wizard
UTF8を選択しました(MySQL の文字セット: UTF-8 Unicode (utf8))
MySQL 接続照合順序 utf8_general_ci

・WindowsXP(SP2)IIS5.1
・PHP 5.2.5 Win32
・MySQL 5.1.22 RC Win32
・phpMyAdmin 2.11.4

多言語(日本語と中国語)を扱える簡単なシステムを試作しているのですが、
test1.php(UFT8-BOM無し)からINSERTしたレコードをphpMyAdminから閲覧
すると日本語が「&egrave;&sup2;&iexcl;&aring;›&pound;&aelig;&sup3;•&auml;&ordm;&ordm;&aelig;」などと文字化けしまくっています。

test2.phpからSELECTすると、まったく文字化けなく呼び出せます。
また、phpMyAdminから直接INSERTしたレコードば文字化け...続きを読む

Aベストアンサー

phpからinsertして、phpでちゃんと呼び出せるということはphpとMySQLの間で文字コードの変換が行われてしまっていると推測されます。

insertやselectの前に

   $sql = 'set names utf-8';
   mysql_query($sql);

は挿入されていますよね?(お忘れではないと思いますが念のため・・)


人気Q&Aランキング

おすすめ情報