人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPの勉強をしています。
以下のマルチバイト文字列関数がうまく動きません。
---------------------------
<?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"との
記述があります。
何故マルチバイト文字列関数がうまく動作しないのでしょうか?よろしくお願いいたします。


●質問者: inajyun
●カテゴリ:コンピュータ インターネット
✍キーワード:DLL EUC-JP PHP print STR
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● じゅぴたー
●50ポイント ベストアンサー

次のように文字化けを防止するヘッダを1行加え、ファイルをEUC-JP形式で保存してから実行してみてください。

<?php
$str='WINGSプロジェクト';
header('Content-Type: text/html; charset=EUC-JP');
print(mb_substr($str,5,6,'EUC-JP'));
?>

これでも問題が発生するようでしたら、エラーメッセージをお知らせください。


2 ● Cherenkov
●50ポイント

まず確実に文字コード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'));

◎質問者からの返答

レスありがとうございます。

両方のファイルを試しましたが、ブラウザに表示できませんでした。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ