私はこのシナリオで立ち往生しています。
私のアプリケーションは、MySQL odbc コネクタ v5.2 Unicode ドライバーを介して MySQL データベース 5.5.34 に接続する C++ です。
私のテーブルは、文字セットと照合プロパティ「utf-8」を使用していました。補助的なユニコード文字を挿入するために、私はそれを経由して変更しました
私のテーブルは最初に作成されました:
CREATE TABLE mytable (SAMPLECOLUMN text) ENGINE=InnoDB DEFAULTCHARSET=utf8;
changed to,
ALTER TABLE mytable CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
この後、「TEXT」データ型を保持する列に補助文字を (アプリではなく) 直接挿入することができます。
補助文字が検出されると、odbc コネクタがクラッシュします。
以下は、私のmy.ini構成の一部です。
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
default-storage-engine=INNODB
挿入しようとしているクエリ:
INSERT INTO mytable (SAMPLECOLUMN) VALUES ("乕乭乺丕");
ポインタ/ヘッドアップは素晴らしいでしょう。
また、v5.3 Unicode MYSQL odbc コネクタと v1.0.5 MariaDB ODBC コネクタを使用してみましたが、同じです。
前もって感謝します。