PHP4.0.6をインストールしたのですが、mb_convert_encodingが利用できずエラーとなってしまいます。どういう原因でしょうか。なにか設定が必要でしょうか。

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

A 回答 (3件)

Windows版PHP4.0.6(バイナリ)には、残念ながらmbstring関連のライブラリは同梱されておりません。


正式なものについては、次期バージョンまで待つ必要があります。

なお、PHP-users MLの過去ログで見たのですが、
Windows用にmbstring関連のモジュール込みでコンパイルされたものをアップされているサイトがありましたので、参考までに紹介させていただきます。
(ご利用はあくまでも自己責任にて…)

参考URL:http://www.bekkoame.ne.jp/~bero/
    • good
    • 0
この回答へのお礼

そうだったんですか、、、
ありがとうございました、助かりました

お礼日時:2001/11/11 02:03

外れていたらすいません。


私の知る限り2点、チェックポイントがあります。

./configureを実行時にどのようなパラメータを指定していますか?
日本語(マルチバイト)を有効にするには以下の指定は必要なようです。
--enable-mbstring
--enable-mbstr-enc-trans

次にphp.iniの設定もしたほうがよさそうです。
こっちの設定はいろいろあるようなので参考URLを参照してください。

参考URL:http://www.php.net/manual/ja/ref.mbstring.php

この回答への補足

ウィンドウズなんですよ、、、php.netはある程度行ってるんですけど
わからないんですよね

補足日時:2001/10/23 00:54
    • good
    • 0

お使いのOSはなんでしょうか?



Windowsでないならば、参考URLが参考になるかもしれません。参考URLの元サイト「日本PHPユーザ会」なら、かなりPHPのことが書かれているので、そこで質問した方がいいかもしれませんよ。ただし、検索することは大前提になりますが・・・

ではでは☆

参考URL:http://ns1.php.gr.jp/pipermail/php-users/2001-Ju …

この回答への補足

windows です。URLと同じような状況かもしれません

補足日時:2001/10/23 00:45
    • good
    • 0

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

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

Qi18n_convert と mb_convert_encoding の違い

メールの文字化け問題で色々ここも見たのですが
ズバリ
$enc = mb_detect_encoding($body);
$body = mb_convert_encoding($body,"AUTO",$enc);

$enc = mb_detect_encoding($body);
$body = i18n_convert($body,"AUTO",$enc);
の違いが分かりません。
同じ事をしていると思うのですが・・・。

あと、受信するメーラーや PCが変わると
本文が文字化けしたりしなかったりで
"AUTO"の部分をJISにしたらまず文字化けします
AUTOなら良かったり良くなかったりです

php.iniのこともよく出ていましたが
今レンタルサーバー使っています
PHP 4.3.2 を入れているようです
文字コードについてはサーバー管理者に聞かないといけないのでしょうか

パリッと文字化けしないようにしたいのですが
何かいい方法はないでしょうか?

Aベストアンサー

いろいろと試されても文字化けするということですよね.
PHPの設定を確認してみてはいかがでしょう??

マルチバイト文字列関数にはphpのinternal_encoding等のmbstringの設定を行わないと正常に動作しない場合があります.
設定されているかどうかは,phpinfoでご確認ください.

以下,mbstring.internal_encodingをSJISとして設定する場合の例です.
(1)か(2)の何れかの方法で設定してみてください.
当然のことながら,レンタルサーバなら(2)しかできないですね.

(1)php.iniにて設定
以下を記述してください.
設定を有効にするためにはapacheの再起動が必要です.
この方法は,該当サーバのphpスクリプト全てに対して有効になります.

mbstring.language = Japanese
mbstring.internal_encoding = SJIS
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;

(2)PHPファイルのあるディレクトリに.htaccessを設置
以下を記述してください.
こちらは.htaccessを設置したディレクトリ配下にて有効となります.

php_value output_handler mb_output_handler
php_value default_charset Shift_JIS
php_value mbstring.language Japanese
php_flag mbstring.encoding_translation Off
php_value mbstring.http_input auto
php_value mbstring.http_output SJIS
php_value mbstring.internal_encoding SJIS
php_value mbstring.substitute_character none

既にご存知でしたら,申し訳ないです….

参考URL:http://www.shigeweb.jp/php/project_p/?section=setup&page=htaccess

いろいろと試されても文字化けするということですよね.
PHPの設定を確認してみてはいかがでしょう??

マルチバイト文字列関数にはphpのinternal_encoding等のmbstringの設定を行わないと正常に動作しない場合があります.
設定されているかどうかは,phpinfoでご確認ください.

以下,mbstring.internal_encodingをSJISとして設定する場合の例です.
(1)か(2)の何れかの方法で設定してみてください.
当然のことながら,レンタルサーバなら(2)しかできないですね.

(1)php.iniにて設定...続きを読む

Q【PHP】mb_convert_encoding()で "~" 等が化ける

PHP5.2.4 使用者です。(レンタルサーバー)

例えば、サーバー及び記述の文字コードがEUC-JPだとして、

$str = "~";
$str = mb_convert_encoding($str , 'UTF-8', 'EUC-JP');

とすると "?" に化けてしまいます。
調べたところ、マルチバイト文字の

~ ¬ ∥ - ¢ £ \

は対応するコードがないから化けるとか…
"~" はよく使う文字ですし、そんな簡単に化けられては困るんですが…
プロの方はこういうのどう処理してるのでしょう。
お詳しい方、よろしくお願いいたします。

Aベストアンサー

euc-jp じゃなくてeucjp-win にしてみてください。

[php] mb_convert_encoding と UTF-8 の誤変換問題 ( しゃいん☆のブログ| 名古屋市 Webシステム開発 サーバ構築 ネットワーク構築 株式会社コネクティボ )
http://shain.blog.conextivo.com/2007/07/php_mb_convert_encoding_utf8.html

根っこが深い問題なんです。実は。


404 Blog Not Found:Encode - 規格のバグまでは直せません
http://blog.livedoor.jp/dankogai/archives/50488765.html

Qphp4.3.11でmb_convert_encoding()

が未定義エラーになって使えないのですが
この関数を使えるようにするには何を追加インストールすればいいのでしょうか?

Aベストアンサー

一応、インストールし直す前にphpのシステム情報を確認してください。
<? phpinfo(); ?>
で表示されるページ内にmbstringの項目が無ければ
インストールし直すしかありません。
そうでないなら、php.ini内の設定を見直してみて下さい。

mbstringの項目が無くて、RPMでインストールされていたならば
同じバージョンのSRPMファイルがあるはずなので、
それのSPECファイルを編集してConfigureオプションを追加して下さい。
その後、Buildして上書きアップデートすれば良いと思います。

QPHP mb_convert_encoding sjisからutf-8

PHP mb_convert_encoding sjisからutf-8で一部文字の文字化けが発生します。

設定ファイル(sjisで作成)をPHP(utf-8)で読み込み、内容を更新して、再度設定ファイルとして書き出す(上書きする)スクリプトを書いています。utf-8で書き出す分には、全く問題がないのですが、書き出す前にmb_convert_encodingでutf-8からsjisに変換すると、文字化けする字が発生します。具体的には、以下の通りです。

事例1
・変換前(utf-8)
book_style="文庫,新書,雑誌,ムック,ソフトカバー,ソフトカバー大型本,ハードカバー,ハードカバー大型本,絵本"
・変換後(sjis)
book_style="文庫,新書,雑誌,ムック,ャtトカバー,ャtトカバー大型本,ハードカバー,ハードカバー大型本,絵本"

事例2
・変換前(utf-8)
;詳細侮ヲの最大表示件数
・変換後(sjis)
;詳細侮ヲの最大侮ヲ件数

該当するプログラム文は、以下の通りです。

$filepath = "setting.ini";
$string = $total_gyo;//ここで出力内容を代入します
$string = mb_convert_encoding($string, "sjis-win", "utf-8");
$string = stripslashes($string);
$fp = fopen($filepath, "w");
@fwrite( $fp, $string, strlen($string) );
fclose($fp);

各行分割して代入しても、全行一括で代入文字化けの発生状況は同じでした。

以上、どうぞよろしくお願いいたします。

PHP mb_convert_encoding sjisからutf-8で一部文字の文字化けが発生します。

設定ファイル(sjisで作成)をPHP(utf-8)で読み込み、内容を更新して、再度設定ファイルとして書き出す(上書きする)スクリプトを書いています。utf-8で書き出す分には、全く問題がないのですが、書き出す前にmb_convert_encodingでutf-8からsjisに変換すると、文字化けする字が発生します。具体的には、以下の通りです。

事例1
・変換前(utf-8)
book_style="文庫,新書,雑誌,ムック,ソフトカバー,ソフトカバー大型本,ハードカバー,ハー...続きを読む

Aベストアンサー

ソは5C問題の代表的存在ですね。
すでに指摘があるとおりstripslashesの使い方を考え直す必要があるでしょう。

Qmb_convert_encodingのタイミング

検索フォームがあるphpファイルはShift_JISですが、検索を問い合わせるデータベースがEUC-JPになっています。

<form action="search.php" method="post">
<input type="text" name="keyword" size=30>
<input type="submit" value="検索">
</form>

検索フォームで入力されたキーワードをmb_convert_encodingでShift_JISに変換してからpostしたいのですが、search.phpで検索キーワードを受け取る前にエンコード変換することは無理なのでしょうか?

Aベストアンサー

>Shift_JISに変換してからpost

おっしゃる意味がよくわからないのですが、
HTML側で先にコンバートする・・・ということですか?

もしそうであればPHPが動いているのはサーバー側なので
データが送られてこないことには話になりません。
ですのでご希望の命題を達成することはできません。

受け取った側で変換すればすむのでは?


このカテゴリの人気Q&Aランキング

おすすめ情報