mbstring

PHPマルチバイト文字対応モジュール。PHP4 は、4.0.6 から日本語用マルチバイト関連モジュールが標準で付属するようになりましたので、4.0.6以降のバージョンであれば標準で組み込まれているはずです。
4.3からは他の言語のサポートも追加されています。

phpinfo()を実行して下記のような表記があれば組み込まれています(PHP 4.3以降はもっと詳細な表示になってます)。

mb_jstring.png

組み込まれていない場合や必要な機能が無効になっている場合は、PHPをリビルドして再導入する必要があります

 

winにインストールするのにWindowsでPHP4が参考になりました。mbstringが組み込まれていないエラーで苦労しました

  • 補足
    • PHP 4.3.x の場合、経験則的に以下の設定がよさそうです。
      ; コメントを外す
      extension=php_mbstring.dll
      
      ; 「On」を「Off」へ変更
      magic_quotes_gpc = Off
      
      ; 「Off」を「On」へ変更
      output_buffering = On
      
      ; 変更
      output_handler = mb_output_handler
      
      ; 変更
      default_charset = "EUC-JP"
      
      ; 変更
      extension_dir = C:/php/extensions
      
      ; 変更
      ; ここは初期値でコメントになっているので注意。
      mbstring.language = Japanese
      mbstring.internal_encoding = EUC-JP
      mbstring.http_input = auto
      mbstring.http_output = EUC-JP
      mbstring.encoding_translation = On
      mbstring.detect_order = auto
      mbstring.substitute_character = none
      ; none の最後のセミコロンも不要
  • reimy 2004-02-24 (TUE) 21:40:09
    mbstring.http_input = pass
    mbstring.encoding_translation = Off

    .htaccessをこのようにしないと文字化けする可能性があります(どちらか一方でよい)。続・質問箱/51参照。


(lib/)mbstring.php

php.ini

  • 上記と異なる設定についてです。文字化け対策としては無難です。
  • 参考文献:PHPの文字化けを本気で解決する
    ;; Disable Output Buffering
    output_buffering = Off
    
    ;; Set HTTP header charset
    ; default_charset = EUC-JP
    
    ;; Set default language to Japanese
    mbstring.language = Japanese
    
    ;; HTTP input encoding translation is enabled.
    mbstring.encoding_translation = off
    
    ;; Set HTTP input encoding conversion to auto
    mbstring.http_input = pass
    
    ;; Convert HTTP output to EUC-JP
    mbstring.http_output = pass
    
    ;; Set internal encoding to EUC-JP
    mbstring.internal_encoding = EUC-JP
    
    ;; Do not print invalid characters
    mbstring.substitute_character = none
    
    mbstring.detect_order = SJIS,EUC-JP,JIS,UTF-8,ASCII

    extension=php_mbstring.dll
    これも忘れずに。

mbstringがうまく設定出来ていない場合の現象

InterWikiのエンコード変換が出来ない。

例えば
EUC版からofficial等のUTF-8サイトの日本語ページにリンクできない。
UTF-8版からdev等のEUCサイトの日本語ページにリンクできない。

  • mbstring自体が有効になってないと思われます。
  • phpinfo()を確認ください。

ページの表示は出来るが、編集しようとすると文字化けして編集出来ない。

  • mbstring.http_inputがautoになっていると思われます。
  • phpinfo()を確認ください。

添付ファイル: filemb_jstring.png 4764件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-01-13 (日) 09:34:32
Site admin: PukiWiki Development Team

PukiWiki 1.5.1+ © 2001-2016 PukiWiki Development Team. Powered by PHP 5.6.30-0+deb8u1. HTML convert time: 0.547 sec.

OSDN