A5:SQL Mk-2

開発のこと、日々のこと

JSON_UNQUOTE() すると文字化け(MySQL)

ホーム フォーラム A5:SQL Mk-2掲示板 JSON_UNQUOTE() すると文字化け(MySQL)

2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • 投稿者
    投稿
  • #5908 返信
    Suketta
    ゲスト

    いつもお世話になっています。素晴らしいツールをありがとうございます。

    MySQL 5.7.8 で追加された JSON フィールドを試験しています。
    A5 で SELECT時に JSON_UNQUOTE() を使用すると、
    値が文字化け(というより文字コード16進の羅列に変化)します。

    A5のバージョン 2.14.4 (x64) で確認しました。
    MySQL Workbench では発生しません。

    例えば DBMS が MySQL 8.0.15 で文字コードが utf8mb4 として、
    JSON_EXTRACT( source, ‘$.id’ ) が数字「1」を返す場合に、
    JSON_UNQUOTE( JSON_EXTRACT( source, ‘$.id’ ) ) が「31※」になります。
    ※UTF8 では「1」の文字コードが 0x31

    source->>’$.id’ と書いても同じ結果です。
    DB側に CREATE VIEW しておいたものを表示する時も同じ結果です。

    ただし、DB側で別途 GENERATED なカラムで先に抽出しておくと、
    A5では普通に表示できました。

    以上、ご報告いたします。

    #5956 返信
    松原正和
    キーマスター

    Sukettaさんこんにちは。
     
    お返事が遅くなり申し訳ありません。
     
    現象を確認しました。バイナリ項目として判定されているようですね。プロトコルの解釈に係る修正は少し大変なので解析・修正に時間がかかると思います。
     
    さしあたりの対策としては、結果セットで右クリックメニューから[バイナリ項目のエンコード(Z)] – [UTF-8]とすると文字列として表示されます。
     
    また、オプションダイアログで、「結果セットグリッド」タブの「バイナリ項目の扱い」と「バイナリ項目のエンコーディング」を指定することでデフォルトの表示の仕方を変えることができます。

2件の投稿を表示中 - 1 - 2件目 (全2件中)
返信先: JSON_UNQUOTE() すると文字化け(MySQL)で#5956に返信
あなたの情報:




コメントは受け付けていません。