以下のマルチバイト文字列関数がうまく動きません。
---------------------------
<?php
$str='WINGSプロジェクト';
print(mb_substr($str,5,6,'EUC-JP'));
?>
----------------------------
php.iniファイルには、extension=php_mbstring.dll
との記述があります。
php_mbstring.dllはC\php\extにあって、php.iniにはextension_dir = "c:\php\ext"との
記述があります。
何故マルチバイト文字列関数がうまく動作しないのでしょうか?よろしくお願いいたします。
次のように文字化けを防止するヘッダを1行加え、ファイルをEUC-JP形式で保存してから実行してみてください。
<?php $str='WINGSプロジェクト'; header('Content-Type: text/html; charset=EUC-JP'); print(mb_substr($str,5,6,'EUC-JP')); ?>
これでも問題が発生するようでしたら、エラーメッセージをお知らせください。
次のように文字化けを防止するヘッダを1行加え、ファイルをEUC-JP形式で保存してから実行してみてください。
<?php $str='WINGSプロジェクト'; header('Content-Type: text/html; charset=EUC-JP'); print(mb_substr($str,5,6,'EUC-JP')); ?>
これでも問題が発生するようでしたら、エラーメッセージをお知らせください。
まず確実に文字コードEUCで保存されているか確認。
<?php echo mb_internal_encoding();
こうするとなにが出力されますか?
これでどうですか?
<?php mb_internal_encoding('EUC-JP'); $str='WINGSプロジェクト'; header('Content-Type: text/html; charset=EUC-JP'); print(mb_substr($str,5,6,'EUC-JP'));
レスありがとうございます。
両方のファイルを試しましたが、ブラウザに表示できませんでした。