日本PHPユーザ会 掲示板

日本PHPユーザ会運営の掲示板です。※ただいまテスト運用中です。

日本PHPユーザ会 掲示板 » PHP 5 » 環境依存文字が「?」で表示される。

環境依存文字が「?」で表示される。

ページ: 1

投稿者 投稿
会員
登録者: 11 2011
返信数: 2
PHP 5.2.6
Apache 2.2.3
を使用しております。

「﨑」「㈱」等の環境依存文字が「?」で表示されます。
設定ファイルやプログラムを一部変更して試しましたが結果は変わりませんでした。

【変更前php.ini】
output_buffering = Off
default_charset = "Shift_JIS"
mbstring.internal_encoding = EUC-JP
mbstring.http_input = SJIS
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto


【変更後php.ini】
output_buffering = On
default_charset = "SJIS-win"
mbstring.internal_encoding = eucJP-win
mbstring.http_input = auto
mbstring.http_output = SJIS-win
mbstring.encoding_translation = On
mbstring.detect_order = eucJP-win,UTF-8,SJIS-win,JIS

;変更後変更後php.iniのmbstring.detect_orderを
;ASCII, JIS, UTF-8, SJIS-win, eucJP-win
;で指定したところ環境依存文字以外も文字化けしてしまいました。


【httpd.confに以下を追加しました】
SetEnv NLS_LANG Japanese_Japan.JA16SJISTILDE
SetEnv LD_LIBRARY_PATH "/usr/lib/httpd/modules:/usr/lib/oracle/11.2/client/lib"

AddCharset us-ascii.ascii .us-ascii
AddCharset ISO-8859-1 .iso8859-1 .latin1
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .arb .arabic
AddCharset ISO-8859-7 .iso8859-7 .grk .greek
AddCharset ISO-8859-8 .iso8859-8 .heb .hebrew
AddCharset ISO-8859-9 .iso8859-9 .latin5 .trk
AddCharset ISO-8859-10 .iso8859-10 .latin6
AddCharset ISO-8859-13 .iso8859-13
AddCharset ISO-8859-14 .iso8859-14 .latin8
AddCharset ISO-8859-15 .iso8859-15 .latin9
AddCharset ISO-8859-16 .iso8859-16 .latin10
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5.Big5 .big5 .b5
AddCharset cn-Big5 .cn-big5
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8 .koi8
AddCharset KOI8-E .koi8-e
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-U .koi8-u
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-7 .utf7
AddCharset UTF-8 .utf8
AddCharset UTF-16 .utf16
AddCharset UTF-16BE .utf16be
AddCharset UTF-16LE .utf16le
AddCharset UTF-32 .utf32
AddCharset UTF-32BE .utf32be
AddCharset UTF-32LE .utf32le
AddCharset euc-cn .euc-cn
AddCharset euc-gb .euc-gb
AddCharset euc-jp .euc-jp
AddCharset euc-kr .euc-kr
AddCharset EUC-TW .euc-tw
AddCharset gb2312 .gb2312 .gb
AddCharset iso-10646-ucs-2 .ucs-2 .iso-10646-ucs-2
AddCharset iso-10646-ucs-4 .ucs-4 .iso-10646-ucs-4
AddCharset shift_jis .shift_jis .sjis

【PHP側での変更】
データベースから取得後に
$_enc_to = mb_internal_encoding();
$_enc_from = mb_detect_order();
mb_convert_encoding(★DBから取得した文字列★, $_enc_to, $_enc_from);
にて結果を出力しましたがダメでした。

$_enc_toや$_enc_fromをいろいろなパターンで試すため
明示的に"SJIS-win"等を埋め込んで試してみましたが
「山﨑あああ」を表示させようとしても
「山?あああ」や全て文字化けした状態で出力されてしまいます。




原因は何が考えられるでしょうか?
また、他に何か試しておくべきことはあるでしょうか?

よろしくお願いいたします。
会員
登録者: 11 2011
返信数: 2
Apacheの起動スクリプトに
NLS_LANGの設定が記述してあり、JA16SJISTILDEではなくJA16EUCで記述してありました。

ページ: 1

日本PHPユーザ会 掲示板 » PHP 5 » 環境依存文字が「?」で表示される。

日本PHPユーザ会 掲示板 は UseBB 1 フォーラムソフトウェア を使用しています