PHP

2010 年 1 月 15 日 コメントをどうぞ コメント

Oracleなどから受け取る文字コードは環境変数にて設定する。

変数名 NLS_LANG
変数Japanese_Japan.JA16SJIS
———————————————————————–

PHPの文字化けを起こらないようにするには
自動変換を利用しない

http_input
http_output
default_charset

GET,POSTのデータを手動で変換する。
———————————————————————–
;; Disable Output Buffering
output_buffering = Off

;;HTTPヘッダの自動出力(利用しない)
;; Set HTTP header charset
; default_charset = EUC-JP

;;mb_send_mailの利用時に参照される(mb_send_mailは利用しない)
;; 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

;;ob_start(”mb_output_handler”)の記述により使用される
;; Convert HTTP output to EUC-JP
mbstring.http_output = pass

;;mbstring関数のデフォルト(省略時)に参照される
;;必須なのはmb_decode_mineheader利用時
;;ソースコードをEUC-JPで記述してもEUC-JPである必要は無い
;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none

;;文字コード自動検出の優先順位であり、autoは使わず必ず指定する
mbstring.detect_order = SJIS,EUC-JP,JIS,UTF-8,ASCII

———————————————————————–
SJIS 5C問題
「ソ」、「表」の記述でパーサエラーとなる
解決方法
–enable-zend-multibyteをつけてコンパイル
php.ini
mbstring.script_encoding = Shift_JIS

  1. コメントはまだありません。
  1. トラックバックはまだありません。