質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

4回答

10686閲覧

MySQLテーブルをCSVファイル化する際の文字化け

tono

総合スコア8

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2014/12/05 05:57

本題から失礼します。

MySQLテーブル(日本語が入っている)をCSVファイル化した後、Excel等で開くと文字化けしてしまいます。

目的としましては、CSV化したファイルをシェルスクリプトから参照できればと考えております。

MySQLの環境は以下の通りです。


/etc/etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql

Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

character-set-server=utf8
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-server = utf8


mysql>show variabkes like 'char%';

Variable_name | Value
character_set_client | latin
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/

mysql> show table status;(一部のみ)
| help | MyISAM | 10 | Dynamic | 98 | 263 | 25848 | 281474976710655 | 1024 | 0 | NULL | 2014-11-26 00:06:54 | 2014-11-26 00:07:00 | NULL | utf8_general_ci | NULL | | |

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

皆様、ご回答ありがとうございました。

以下の対策実行で解決致しました。

mysql内で
mysql>show variabkes like 'char%'; で表示される設定を全て「UTF8」に変更し、再度mysqlのテーブルを作り直すことで解決しました。

皆様ありがとうございました。

投稿2014/12/09 06:13

tono

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Excelは、Windows環境で動くものでしょうか?
それともMACでしょうか?

それによっても異なりますが、Win環境の場合、Excel の標準文字コードは SJIS を利用してるはずです。
私も同じような作業をした経験がありますが基本的にUTF-8のデータベースからエクスポートしたデータをExcelで参照すると文字化け発生致しますが、Mysql → Access → Excel の用に、エクスポートしたデータを Access でインポートおよび Access からエクスポートすれば、Excel でも文字化けする事無く開く事が出来ます。

ただし、上記のようにMysqlの出力データをシェルスクリプトで処理させる場合、同じサーバ環境下で動作せる事になると言うのであれば文字コード変換は不要ではないかとおもいますが・・・。

投稿2014/12/08 13:39

takayukiinaba

総合スコア1158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Excelについては、テキストファイルの取り込み(テキストファイルのインポート)の操作とか、バージョンよってはメニューから開く操作をすると、手動の手順は多いものの、開けると思いますが…
初期状態での関連付けでは、BOMなしUTF-8は認識しない気がします。

UTF-16のTSVを拡張子CSVにすると大抵の環境で関連付けで正しく開いてくれるという記事をどこかで読んだ気がします。

投稿2014/12/05 08:38

TaMaMhyu

総合スコア1356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TaMaMhyu

2014/12/08 04:40

本来の目的が見えないので回答しづらいのですが、MySQLのデータを「何のため」に「どのような環境」で使いたいのでしょうか?
TaMaMhyu

2014/12/08 04:41

ちなみにシェルスクリプトから扱うにはCSVよりTSVのほうが楽です。
guest

0

SELECT ... INTO OUTFILE で csv に出力しているということでしょうか?(プログラミング言語は使わずに)

UTF-8 などの Unicode の CSV を Excel で開くときは BOM が必要です。
SELECT ... INTO OUTFILE では BOM は付かないので何かしらの方法で付けてやる必要があります。

投稿2014/12/05 07:37

ngyuki

総合スコア4514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問