• ベストアンサー

機種依存文字について

http://php.nekosuke.com/000056.htm のソースを変換に利用しています。ページはutf-8統一です。基本的な質問かと思うのですが echo replaceText("(株)"); echo replaceText("(株)"); とやってもそのまま表示されるのですがこれで問題ないのでしょうか? メール送信時に文字化けするので置き換えるとの事ですがiso-2022-jpに変換されてから 送信直前に関数を実行するという解釈でいいのでしょうか?

  • dcx147
  • お礼率33% (214/636)
  • PHP
  • 回答数1
  • ありがとう数0

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

  • ベストアンサー
回答No.1

リンク先のサイトを見させてもらいました。 '\xE3\x88\xB1' となっているこのクオートなんですが、全て「"」に変更してください。 直ると思います。

関連するQ&A

  • php,mysqlでの文字化け(機種依存文字)について

    機種依存文字「○いち」「(株)」の文字化けがどうしても解消できません。 phpソースに機種依存文字をコーディングした場合には正しく表示されますが、外部より入力した文字をMySQLに格納し、phpにてデータを取り出し表示すると文字化けします(phpmyadminでの表示時点で文字化け)。 「mb_convert_encoding」等にてテストしてみましたが、結果は変わりませんでした。また、phpmyadminにて直接MySQLに入力しても、phpmyadminでもブラウザ(php表示)でも文字化けしてしまいます。 文字コードについて知識が浅く、各環境はデフォルト状態です。 「mbstring.internal_encoding = EUC-JP 」にも関わらず、「character_set_client = utf8」「character_set_results = utf8」としているのに、機種依存文字以外は問題無く表示されております。 1.機種依存文字化けの対応方法 2.正しい環境設定方法(文字コードの統一を行うべき等) ご教授のほど、何卒宜しくお願い致します。 <<環境>> ・windows xp ・UNIX socket 4.1.22 ・phpMyAdmin - 2.11.1 ・Mysql 4.1.21 ・PHP 4.4.7 【Mysql】 character_set_client = utf8 character_set_connection = utf8 character_set_database = utf8 character_set_results = utf8 character_set_server = ujis character_set_system = utf8 【my.cnf】 [client] default-character-set = ujis [mysqld] default-character-set = ujis [mysqldump] default-character-set = ujis 【php.ini】 mbstring.language = Japanese mbstring.encoding_translation = On mbstring.http_input = auto mbstring.http_output = EUC-JP mbstring.internal_encoding = EUC-JP mbstring.detect_order = auto mbstring.substitute_character = none; ※phpソースには「charset=euc-jp」を記載

    • 締切済み
    • PHP
  • mbstringについて

    PHPを勉強しようと xamppを入れています。 phpのソースは、UTF8で記述しており、 default_charset = "utf-8"でiniに設定しています。 <?php echo "ハローワールド"; ?> とソースを作った場合、 質問1:「mbstringの設定がないと「ハローワールド」は文字化けするもの」なのでしょうか? mbstringは、「mbstring関数を利用するときに影響がある」と認識しております。 影響のあるmbstring関数?:http://php.net/manual/ja/ref.mbstring.php    極端の言い方をさせていただくと、上記ソースでは、mbstringの設定有無の影響は ないのでしょうか? 質問2:上のソースをSJISで書いたときに、default_charset = "utf-8"の設定が php.iniでされていますので文字化けが発生するという解釈で問題ないでしょうか ご教授よろしくお願いします。

    • ベストアンサー
    • PHP
  • euc-jpからutf-8の文字コード変換について

    現在、何らかのhtmlを取得する際にはurf-8で統一しようと思っているのですが、 たとえば <?php $f=file_get_contents("http://blog.livedoor.jp/dqnplus/")//文字コードEUC-JP; $f = mb_convert_encoding($f,"utf-8","eucjp-win,utf-8,sjis-win,EUC-JP"); echo $f; ?> では、EUC-JPからの変換がうまくいきません。 ……というより、EUC-JPのエンコーディングのみ失敗してしまいます。 (文字化けしたもののみ抽出すると、すべてEUC-JPでした) どのようなコードを書けば、正常にエンコードできるでしょうか。 どなたかご教示のほど、どうかよろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPでmb_send_mail()関数を使っときの件名について

    PHPでmb_send_mail()関数を使っときの件名について mb_send_mail()でメールの送信はできるのですが、件名(Subject)を日本語にすると8文字以上送信すると送信エラーが起こります。同じプログラムをLinuxでやるとうまくいきます。プログラムは以下のようにしています。(mail()関数を使うとこのような問題は起こりませんでした。) mb_language('Japanese'); $subject='メールテスト'; $subject=mb_convert_encoding($subject,'ISO-2022-JP','UTF-8'); $message='Webメールのテストです。'; $message=mb_convert_encoding($message,'ISO-2022-JP','UTF-8'); $head='私から送信されました。<****@****.net>'; $head=mb_convert_encoding($head, 'ISO-2022-JP', 'UTF-8'); $head=mb_encode_mimeHeader($head,'ISO-2022-JP','B'); if(mb_send_mail('****@****.com',$subject,$message,'From:'.$head)){ echo 'おくったよ。<br>'; } else{ echo 'おくれない。'; }  件名の全角での文字数を増やす方法があったら教えてください。  よろしくお願いいたします。 <システム環境>  Windows7(64Bit)  Apache2.2  PHP5.3.2

    • ベストアンサー
    • PHP
  • 機種依存文字が?になる

    HTML_QuickFormを利用してフォーム送信しているのですが 受信したメールを見ると特定の文字が?になってしまい 文字化けをしてしまいます。 具体的にはメールで確認した際に<input type="text" ・・・>に 入力した半角カタカナと機種依存文字が?に変わっておりました。 php,tplファイルは全てutf-8で保存されphpのソースは以下のようになっております。 header('Content-Type: text/html; charset=utf-8'); mb_language('Japanese'); mb_http_input('UTF-8'); mb_http_output('UTF-8'); mb_internal_encoding('UTF-8'); require_once 'HTML/QuickForm.php'; require_once 'HTML/QuickForm/Renderer/ArraySmarty.php'; require_once 'Smarty/Smarty.class.php'; $to = 'mail@ad.com'; $form = new HTML_QuickForm('inq', 'post'); $form->addElement('text', 'name', '名前', array('class' => text)); $form->addElement('text', 'ad', '住所', array('class' => text)); $form->addElement('textarea', 'msg', 'コメント', array('rows' => 8, 'cols' => 30)); $value = $form->getSubmitValues(); if (isset($value['accept'])) { $subject = '連絡'; $message = <<<EOD 【名前】 {$value['name']} 【住所】 {$value['ad']} 【メッセージ】 {$value['msg']} 【メッセージ】 {$value['msg']} EOD; mb_send_mail($to, $subject, $message, "From: {$value['連絡']}"); $form->freeze(); ~略~ 半角カタカナの件は $message = mb_convert_kana ($message, 'K'); とし解決したのですが機種依存文字の解決策が見つからず自分なりに なんとか調べてみたところ下記のurlがみつかりました。 http://shimax.cocolog-nifty.com/search/2007/12/phpeucjputf8_f714.html utf-8では機種依存文字が?になるのは当たり前のことなのですね。 これを応用しなんとかできるかと思い下記のようにしてみたのですが 結果は同じでした・・・ $message = mb_convert_encoding(mb_convert_encoding($message,"sjis-win","UTF-8"),"UTF-8","sjis-win"); どのようにすれば解決できるものなのでしょうか? 宜しくお願い致します。

    • 締切済み
    • PHP
  • UTF-8でのメール送信の問題点

    メール送信のシステムをPerlで作っています。 文字コードUTF-8で送信しようと思っていますが、UTF-8の場合の問題点を教えてください。 自分で調べた限りでは、昔は対応していないメーラーだと文字化けしていたが、今は対応していないメーラーはないので、大丈夫、という認識です。 しかしながら、大手のAmazonやYahoo!、プロバイダや銀行などから飛んでくるメールは、ほとんど全てがISO-2022-JPで飛んできます。 自分が知っている限り、UTF-8を使用しているところはありません。 なので、UTF-8でメール送信することに不安を感じています。 AmazonやYahoo!は、UTF-8だと何か問題があったので、あえてISO-2022-JPを使っているのでしょうか? ISO-2022-JPだと 髙 などが文字化けするはずなのですが、髙→高に変換してメール送信しているのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • Perlの文字コード

    1-2年ほど前、Perl5.8でソース自体をUTF8N(LF)で記述するようになり、 以下のように書いていました。 use utf8; use encoding "utf8"; use Encoding; それからPHPに移り、PHPでは、ソースはEUC-JP、DBもEUC、HTMLに出力する際もEUC-JPで統一していました。 最近またperlを使い出して疑問に思ったのですが、 perlではどのような文字コードで統一すれば一番よいのかということです。 javascriptはUTFだと動作しない端末(ザウルス)などあり、 perlもEUC-JPで統一しようと考えています。 昔、UTF8にこだわったのは、おそらく 「構」という文字は5Cなので、 文字コードによる不具合(ソース,js,cssで)を避けるためと、流行のUTF8にしたと思います。 perlでEUC-JPで文字コード統一させるメリットデメリットが知りたいです。 最近perlで書かれたサイトでHTML出力がShift_JISだったのですが、perlソースもシフトJISかは知りませんが、Shift_JISで統一するデメリットが知りたいです。 あと、WEBでどの文字コードが現在主流で、今後どうなるかも知りたいです。 EUC-JPで安泰なら、話は早いですが・・・

    • ベストアンサー
    • Perl
  • 文字コード(UTF-8)文字化けについて

    以下のphpを実行したところ、入力した文字によって文字化けしたりしなかったりします。 どなたか原因が分かる方がいらっしゃったら教えてください。 (見、一は化けない。上、実は化ける。) phpはバージョン5.2.8を使用しています。 (コード)----------------------- <html lang="ja"> <meta http-equiv="Content-type" content="text/html; charset=UTF-8" /> <head> </head> </body> <?php mb_language("Japanese"); mb_internal_encoding("UTF-8"); $org_text1 = "見"; $org_text2 = "上"; $org_text3 = "実"; $org_text4 = "一"; $telop_text1 = mb_convert_encoding($org_text1,'utf-8','ASCII, JIS, EUC-JP,SJIS'); $telop_text2 = mb_convert_encoding($org_text2,'utf-8','ASCII, JIS, EUC-JP,SJIS'); $telop_text3 = mb_convert_encoding($org_text3,'utf-8','ASCII, JIS, EUC-JP,SJIS'); $telop_text4 = mb_convert_encoding($org_text4,'utf-8','ASCII, JIS, EUC-JP,SJIS'); echo "telop_text1="; echo $telop_text1; echo "<br>"; echo "telop_text2="; echo $telop_text2; echo "<br>"; echo "telop_text3="; echo $telop_text3; echo "<br>"; echo "telop_text4="; echo $telop_text4; ?> </body> </html> (結果)------------------------- telop_text1=見 telop_text2= telop_text3=タ telop_text4=一

    • ベストアンサー
    • PHP
  • PHPの文字コード

    phpでの文字コードについて、どうするか迷っています。 perlの時はutf8に統一しましたが、phpの場合、ソースはeuc-jpにして、html出力もeuc-jpにする例が多いのですが、私としては、ソースはutf8にしてhtml出力もutf8にしようと考えています。 理由は、半角カナやIBM拡張文字などはeuc-jpでは使えないためです。 みなさんにお聞きしますが、utf8ベースで開発した場合、文字列操作や正規表現やDB関係などで困るような具体的な例が知りたいです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • コード上の埋込み漢字コードの文字化け

    PHP のソースコード上に埋め込んでいるべた書きの2バイトコードが 文字化けを起こしてしまいます。以下、経緯を含め詳しく書きます。 1.HTMLのFORMよりデータを入力。(toiawase.html) 2.PHPにて、入力データをWebブラウザ上に表示して確認。(mail_kakunin.php) 3.PHPにて、確認済みのデータをmail()関数にて送信。(mail_send.php) 上記の状態で正常動作を確認。 「1」の toiawase.html にて、charsetをUTF-8にする必要があり 下記のように charset のみ書き換えました。 <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8" /> すると以下の不具合が発生しました  ・上記の「2」の部分ですでに入力したデータのみ文字化けを起こす。  ・当然、「3」にての送信でも入力データのみ文字化けして送られる。 よって、「2」のmail_kakunin.php にも以下の分を追加しました <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8" /> すると以下のような不具合が発生しました  ・上記の「2」の部分で入力データは mb_convert_encoding() で UTF-8   に変換し、文字化けしませんが、今度はPHPのコーディングでべた書きの2バイト   コードが文字化けを起こす。 HTML上で、UTF-8 の漢字コード指定なので、PHPにべた書きの2バイトコードも UTF-8 で出力する必要があるのですが、やり方がわかりません。 ご存知の方教えていただけると助かります。

    • ベストアンサー
    • PHP

専門家に質問してみよう