質問: ### 前提・実現したいこと PHP・postgresqlでシステムを作成しております。 処々の事情で、以下環境となっておりますが、旧漢字の文字化けが発生しております。 ※ PHP(shift-jis)、PostgreSQL(euc-jp) ※ 髙など 改善の為、文字コード変換など試しているのですが、 依然対処出来ておりません為、お力をお貸しくださいませ。 何卒宜しくお願い致します。 環境 PHP 5.6.36 PostgreSQL 9.6.8 ### 該当のソースコード DB登録時 → mb_convert_encoding($str, "EUC-JP", "SJIS"); 画面出力時 → mb_convert_encoding($str, "SJIS", "EUC-JP"); ### 試したこと 画面出力時 → mb_convert_encoding($str, "sjis-win", "EUC-JP"); → mb_convert_encoding($str, "sjis-win", "CP51932"); 上記2点とも変化なしでした。
回答: > > DB登録時 > > → mb_convert_encoding($str, "EUC-JP", "SJIS"); > > > 「髙など」は、`"EUC-JP"`、`"SJIS"`ともに範囲外のため、**登録時点で壊れてしまっています**。表示側で頑張っても手遅れです。 Windows系の機種依存文字を前提とするなら`eucJP-win`や`SJIS-win`がありますので、登録時点からこれらを使ってください。