NLS_NCHAR_CHARACTERSET
Oracle データベースには、との 2 つの文字セットがあることを知っています
NLS_CHARACTERSET
。
私はそれらを次のように設定しました:
NLS_CHARACTERSET WE8MSWIN1252
NLS_NCHAR_CHARACTERSET UTF8
データベースを作成するとき。
NVARCHAR
また、使用しないでテーブルを作成するため、使用VARCHAR
して保存することになっていますUTF8
。
ID NUMBER
EMAIL NVARCHAR2(255)
USER_NAME NVARCHAR2(255)
POST_AT DATE
CONTENTS NVARCHAR2(255)
しかし、私は正しい出力を得ることができません。日本語の文字を含む行を挿入すると、「???」のようになります ターミナルで確認すると。
なぜ機能しないのかわかりません。この問題を解決する方法を知っている人はいますか?
また、データベースへの保存方法を気にせず、データベースから取り出した後に正しい出力を取得したい場合、正しくデコードする方法はありますか? (エンコーディングを変換する方法をいくつか試しましたが、うまくいきません)
PHP の OCI8 を使用してデータベースにアクセスします。Oracle データベースのバージョンは、linux.x64 用の oracle 11gR2 です。