ホーム › フォーラム › A5:SQL Mk-2掲示板 › SQL_ASCIIの強制変換時の挙動について
-
投稿者投稿
-
Garuda
ゲストいつもお世話になっております。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の時文字列を強制変換は、書き込み時も反映できるのか、
他に設定内容で注意すべき点があれば、ご教授いただけると幸いです。松原正和
キーマスターGaruda さんこんにちは。
強制エンコーディングはかなり強引に実装した機能なので、本来は読み込み・書き込みとも動作するはずなのですが、ちょっとうまく動いていないのかもしれません。
ちょっと調べてみたのですが、すぐにはわかりませんでした。解決はもうしばらくお待ちください。 -
投稿者投稿