• ベストアンサー

文字エンコードを調べたい

よろしくお願いします。 現在、文字列のエンコードを調べたいと思っています。 mb_check_encodingを使えばできるのですが、PHP 4.4.3からとなっています。 当方Xサーバーを利用していますが、phpのバージョンが低いためりようできません。 エンコードを判定する良い手はありませんか? よろしくお願いします。

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

  • ベストアンサー
  • tecinfo
  • ベストアンサー率52% (32/61)
回答No.1

mb_detect_encodingなら PHP4.0.6以上で使用可能ですが、ダメでしょうか?

参考URL:
http://jp2.php.net/manual/ja/function.mb-detect-encoding.php
hola1973
質問者

お礼

できました。ありがとうございました。 手元の本を見ても載ってませんでしたので、非常に助かりました。 ありがとうございました。 PHPマニュアルも見ていましたが、検索で出てきませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 文字エンコードについて

    Blogの更新をPHPで挑戦してみたのですが、文字化けしちゃって訳がわかりません… PHPのバージョンは5.1.6.6でバッチファイルを使用してます。 色々調べてみた結果Blogの方の文字コードがShift_JISみたいなので (PHPは基本UTF-8ですよね?) mb_convert_encodingかmb_convert_variablesの関数かなと思って使用してみたのですが結果はエラーがおきてしまい↓↓どうしていいのか分かりません、、 mb_convert_encoding(変換したい文字列, "SJIS", "auto"); mb_convert_variables("JIS", "UTF-8", 変換したい文字列); autoのところをUTF-8にしてもおなじでした… もちろん一つずつ試しました。 どなたかいい解決方法を教えて頂けませんか?

    • 締切済み
    • PHP
  • PHPの内部文字コードを設定できない

    環境はWindows 8.1+PHP 7.0.1です。 php.iniのmbstring.internal_encodingがPHP5.6で非推奨になったので、 default_charsetで文字コードを設定しています。 ところが、default_charsetの値を変えても、以下の結果が変わりません。 echo mb_internal_encoding(); mbstring.internal_encodingを変更すると、確かに反映されるのですが、 default_charsetの値はmb_internal_encoding()には反映されないのでしょうか。 もともとは、mb_check_encodingで判定に利用する文字コードを、php.iniで設定したかったのですが、現在はこれを利用するにはやはりmbstring.internal_encodingから指定しなければならないのでしょうか(現在は常にUTF-8でチェックしているようです)。

    • ベストアンサー
    • PHP
  • 文字エンコードについて

    文字エンコードについてなのですが、 コンピュータでは文字1つ1つに何バイトかの値が割り振られていて、 それを翻訳的なことをして表示していることがわかりました。 で、エンコードによって同じ文字でも内部の値が異なっているということもわかりました。 そこで質問なのですが、私はPHPを勉強しています。 それで文字列のエンコードを変更する関数があるのですが、それで文字列をUnicodeに変更したとします。 でも保存するときにANSIを選択した・・・これってどういうことなんでしょう? しかも、IE等のブラウザ上からも「表示」→「エンコード」→「Shift_JIS」と選択できます。 プログラムの上からのエンコーディング テキストエディタからのエンコーディング これはどちらが優先されているのでしょう。 エンコーディングについて詳しいサイトなどありましたらお願いします。

  • PHPスクリプトでエンコードエラー

    (http://c-php.mine.nu/)で配布されている「貼り付けアンケート」を設置したところ、以下のようなエラーが出ました。 Warning: mb_convert_encoding(): Illegal character encoding specified in /home/toraya-c/public_html/harituke/harituke.php on line 94 Warning: mb_convert_encoding(): Illegal character encoding specified in /home/toraya-c/public_html/harituke/harituke.php on line 95 Warning: mb_convert_encoding(): Illegal character encoding specified in /home/toraya-c/public_html/harituke/harituke.php on line 96 Fatal error: Call to undefined function: mb_check_encoding() in /home/toraya-c/public_html/harituke/harituke.php on line 140 エンコードがうまくいってないようなのですが。。 指定の行数の記述は以下です。 $title = mb_convert_encoding($title,'EUC-JP',$en); $body = mb_convert_encoding($body,'EUC-JP',$en); $quest = mb_convert_encoding($quest,'EUC-JP',$en); if(!mb_check_encoding($body,'EUC-JP') || mb_check_encoding($body,'ASCII')){ 配布されているものを特に変えず(設定部分以外)、そのままupしたつもりですが、エラーの原因がわかりません。 当方、php初心者なので的外れな質問でしたら申し訳ございませんが、よろしくお願いします。

    • ベストアンサー
    • PHP
  • 文字列のエンコードについて

    例えば以下のコードで日本人がターゲットのサイトを作ったときにエンコードがutf8以外ってありますか?idなどもutf8でなんとかなるのになぜ他の文字コードは必要なのですか? //SJISに変換 $str = "私のidはrxxdtggb63332224667です。"; $result = mb_convert_encoding($str, "SJIS"); echo $result . "\n"; //UTF-8に変換 echo mb_convert_encoding($str, "UTF-8"); //SJISに変換 $str = "gcdddyyghgcc.jpg"; $result = mb_convert_encoding($str, "SJIS"); echo $result . "\n"; //UTF-8に変換 echo mb_convert_encoding($str, "UTF-8");

    • ベストアンサー
    • PHP
  • PHPにてメールフォームで文字化け

    今、会社のHP用でメールフォームをphpで作成しています。 「入力」→「確認」→「送信」 でsession関数を使って作成しているのですが確認画面で文字化けしてしまい、送られてくるメールも文字化けしてしまい困っています。 エンコードの間違い?と思って mb_language("ja"); mb_internal_encoding("SJIS"); でやっているのですがこれだけではいけないのでしょうか? 個人で借りているサーバーで試したところうまくいったのですが、会社の借りているサーバーだと文字化けしてしまう状態です。 ちなみに個人で借りているのはロリポップで 会社のサーバーはphp4まで対応しています。 わかりにくい質問ですがよろしくお願いします。

    • 締切済み
    • PHP
  • 文字コードの変換について

    現在、表示はPHPで文字コードはEUCで表示しています。 そのときには表示できるのですが、 表示したものを、SHIFT-JISにエンコードしてエクセルに表示するときに、文字コードの違いにより表示されないものがあります。 エンコードは $str = mb_convert_encoding($str, "SJIS", "auto"); と行っています。 EUCからSJISに変換するときに、何か特別なことを行う必要があるのでしょうか??

    • ベストアンサー
    • PHP
  • phpのmb_send_mailで携帯のみ文字化け

    PHPのmb_send_mail関数でメールを送信しています。 メールサーバーはGoogleAppsのを使っています PHPのバージョンは5.1.6 --- 下記ソース --- //日本語と内部文字エンコードの指定 mb_language('ja'); mb_internal_encoding('UTF-8'); $parameter = "-f hoge@example.co.jp";//return_path設定 // ↓コレだと携帯では文字化けしないが、Gmailへ送信すると文字化け //$subject = mb_encode_mimeheader(mb_convert_encoding($subject,"JIS","UTF-8")); $header = ""; $header .= "From: {$subject}<{$from}>"; $message = str_replace("\r", "", $message); $res = mb_send_mail($to, $subject, $message, $header, $parameter);

    • ベストアンサー
    • PHP
  • ファイルの文字コードを調べたい

    お世話になります。 現在PHPでテキストファイルの文字コードを調べる関数を作っています。 流れは 1 テキストファイルのパスをわたす 2 ファイルがあれば開いて最初の1行を読む 3 mb_detect_encoding関数でその文字列を調べて返す という順なのですが mb_detect_encodingで何をおくってもASCIIとしかならず 不思議に思い質問させていただきました もしかしてmb_detect_encodingには日本語を渡さないと autoの場合すべてASCIIで返ってくるのでしょうか? auto時の調べる順番がASCIIが一番上になっているためですか? また、ファイルの文字コードを調べるのにもっと良いほうほうがあれば 教えていただけないでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • [Perl] unpackで不要文字にエンコード

    Perl CGIについてです。 文字列をエンコードしようと次のようにしてみました。 $val1 =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $val2 =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $va1は問題なくエンコードされ、デコードも元文字に戻ったのですが、 $va2のエンコード文字に不要な'25'が含まれるようになってしまいました。 例:「ガム」をエンコード >> %A5%AC%A5%E0  を期待していたのですが、結果は %25A5%25AC%25A5%25E0 と不要に'25'が含まれてしまいました。unpackの文が悪いのでしょうか?ご教示ください。

    • ベストアンサー
    • CGI
G3370のセットアップができません
このQ&Aのポイント
  • G3370を購入しましたがパソコンにドライバーがインストールできません。
  • Webからインストールを進めますがプリンターの検出までは進むのですが次のステップでUSB接続ができていないとなって進みません。
  • G3370のセットアップができず、ドライバーのインストールやUSB接続の問題が発生しています。
回答を見る