いつもお世話になっております。Garudaと申します。
SQL_ASCIIの強制変換時の挙動について、お教え下さい。
OS:Windows10 21H2 64bit
A5:SQL Mk-2の設定
バージョン:2.17.2(x64 edition ポータブルモード)
接続方法:PostgreSQK(直接接続)
DB種別:PostgreSQL
プロトコルバージョン:3.0
SSLモード:無効
SSH2トンネル:SSH2トンネル経由で接続する
データベースの文字コードがSQL_ASCIIの時文字列を強制変換する
強制エンコーディング:SJIS
文字列へのエンコーディングエラーを抑止する:ON/OFFいずれも事象が発生する
接続先サーバ:CentOS 7.8
DBMS:PostgreSQL 9.2.24
データベースのエンコーディング:SQL_ASCII
> SELECT character_set_name FROM information_schema.character_sets;
character_set_name
——————–
SQL_ASCII
(1 row)
> SHOW client_encoding;
client_encoding
—————–
SQL_ASCII
(1 row)
このデータベースには、日本語文字列は全てShift-JISで格納されています。
この環境で、「テーブルを開く」でテーブルを開き、「データ」タブで閲覧すると、正しい文字列で表示されるのですが、セル内で編集を行うと文字化けが発生します。
書き込んだ文字列:テスト
書き込まれた文字列:繝・せ繝・
※「テスト」をUTF8で保存し、Shift-JISで開いた時の文字化けに類似している。
また、SQLエディタ上で、文字列を含むUPDATE分を実行すると、以下のエラーが発生します。
(フィールド名等は伏せてあります)
SQL : update xxxxxx set xxxxxx = ‘テスト’ where xxxxxx = 28195
SQL : invalid byte sequence for encoding “UTF8”: 0x83
どうも、UTF8でデータベース側には、値が渡っているようなのですが、
そもそも、SQL_ASCIIの時文字列を強制変換は、書き込み時も反映できるのか、
他に設定内容で注意すべき点があれば、ご教授いただけると幸いです。