アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHPでCSVよ読み込んで名簿を作っています。
出力まではうまくいったのですが、なぜか一字だけ文字化けしてしまいます。(「務」→「冶」になってしまいます)
普段あまりプログラムはしないので、原因がわからず困りはてております。よろしくお願いいたします。

PHP部分の記述は以下になります。
―――――――――――――――――――――――――――――――――――
<?php
$fname = "csv/meibo.csv";
$file = fopen($fname, "r");

$nowrap = "nowrap=\"nowrap\"";
$tcent = "class=\"center\"";
$tbg = "class=\"even\"";

while (list($name, $post, $add, $add2, $tel, $http, $url, $mail) = fgetcsv($file, 1000, ",")){
$name = strtr($name, "﨑", "崎");
$add2 = strtr($add2, "﨑", "崎");

$tline ++;
if($tline % 2 == 0){
echo "<tr $tbg>\n";
}else{
echo "<tr>\n";
}

echo "<td $nowrap>$name</td>\n";
echo "<td $tcent>$post</td>\n";
echo "<td>$add<br />$add2</td>\n";
echo "<td $tcent>$tel</td>\n";

if($http == "http://"){
echo "<td $tcent><a href=\"$http$url\" target=\"_blank\"><img src=\"img/common/img_hp.gif\" alt=\"HPへ\" width=\"16\" height=\"16\" /></a></td>\n";
}
else
{
echo "<td $tcent></td>\n";
}

echo "<td>$mail</td>\n";
echo "</tr>\n";
}

fclose($file);
?>
―――――――――――――――――――――――――――――――――――

PHP4を利用。
.phpのcharsetはShift_JISで、同じくShift_JISで保存しています。
CSVファイルはエクセルで作りShift_JISで書き出しています。

A 回答 (2件)

理由はわかりませんが


$name = strtr($name, "", "崎");
が引っかかってるっぽいです

$name = str_replace( "", "崎",$name);
または
$name = strtr($name, array("" >= "崎"));

これだとちゃんと「務」で表示されました
    • good
    • 0
この回答へのお礼

koke29様、ありがとうございます!
PHP4だからダメなのかなと、PHP5の環境もつくって試してみたのですが、今度はさらに文字化けしてまた一苦労していました。
ずっとエンコードの問題だと思っていたのですが、文字置換の部分が影響していたのですね。

お礼日時:2008/12/19 10:00

あああ…


なんか文字が消えてしまう…

"" は "サキの難しいやつ" です。
    • good
    • 0
この回答へのお礼

立の崎は、いろいろ扱いが難しいみたいですね。
補足ありがとうございます!

お礼日時:2008/12/19 10:01

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