39601


Dockerとdocker-
composeを使ってMySQLサーバを立てているのですが、データベースから取得したデータがブラウザで表示すると文字化けしてしまいます。

MySQLのcharsetの設定は以下のとおりです。

[code]

    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | latin1                     |
    | character_set_connection | latin1                     |
    | character_set_database   | utf8                       |
    | character_set_filesystem | binary                     |
    | character_set_results    | latin1                     |
    | character_set_server     | utf8                       |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    
[/code]

`character_set_database`がutf8になっているのでこれで良いと考えています。また、コンテナ内でCLIでデータベースのデータを表示するとちゃんと日本語で表示されます。  
ちなみに文字コードの設定はdocker-composeの起動オプションを

[code]

    mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
    
[/code]

として設定しています。

データベースの初期化に利用したSQLファイルのテーブル定義部分は以下の通りです。

[code]

    CREATE TABLE artists (
        id integer NOT NULL,
        created_at timestamp NULL DEFAULT NULL,
        updated_at timestamp NULL DEFAULT NULL,
        deleted_at timestamp NULL DEFAULT NULL,
        name character varying(255),
        phonetic character varying(255)
    ) ENGINE=InnoDB CHARSET=utf8;
    
[/code]

こちらでもutf8を設定しているのですが、ブラウザでは文字化けします。あとローカル(MBA)のMySQLでも試しましたが、そちらの方ではブラウザに表示しても文字化けはありませんでした。  
解決方法をお教えいただけると幸いです。

**追記**

ブラウザでの表示には自分で作成したWebアプリケーションを使用してJSONで出力するようにしています。  
データベースとの接続にはgormというオープンソースを使用しており、データベースの接続に使っているURLは以下のとおりです。

[code]

    username:password@tcp(db:3306)/databasename?charset=utf8&parseTime=True&loc=Asia%2FTokyo
    
[/code]


CC BY-SA 3.0
2017-11-15T03:25:22.063
39585
2018-09-07T06:00:36.803
2017-11-15T06:23:16.920
7232
7232
question
mysql docker docker-compose
Dockerで建てたMySQLサーバから取得した文字をブラウザで表示すると文字化けする。


`--skip-character-set-client-handshake`オプションをつけると文字化けしなくなりました。


CC BY-SA 3.0
2017-11-15T22:29:52.593
39601
2017-11-15T22:29:52.593
7232
39585
answer