teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

解決

2020/07/09 11:01

投稿

white_note
white_note

スコア8

title CHANGED
File without changes
body CHANGED
@@ -75,4 +75,22 @@
75
75
 
76
76
  ちなみに、Mysqlで
77
77
  select name from table1;
78
- を実行した際はGitbashでも文字化けしません。
78
+ を実行した際はGitbashでも文字化けしません。
79
+
80
+
81
+ ### 解決方法
82
+ Mysqlへ接続した後、3行目のように`charset_utf8`を書いたら文字化け解消されました。
83
+ 何故かDBの文字コード設定が上手くいっていなかったようです。。。
84
+ ```
85
+ #!/bin/bash
86
+ var=$(mysql -u user pass <<EOF
87
+ charset utf8;
88
+ select name from table1;
89
+ EOF
90
+ )
91
+
92
+ array=(`echo $var`)
93
+ for ((i=0; i<${#array[@]}; i++)) do
94
+ echo ${array[i]}
95
+ done > ./file.txt
96
+ ```

2

追記

2020/07/09 11:01

投稿

white_note
white_note

スコア8

title CHANGED
File without changes
body CHANGED
@@ -50,4 +50,29 @@
50
50
  EOF
51
51
  )
52
52
  echo ${var} > ./file.txt
53
- ```
53
+ ```
54
+
55
+
56
+ ### 追記
57
+ > メモ帳で開く場合は BOM を先頭につけてください。
58
+
59
+ BOMつきで開いたところ、ローマ字の部分は文字化けが解消されました!
60
+ しかし漢字の部分の文字化けが未だ直らずです。
61
+
62
+ テキストファイルに書き出しせず、Gitbash上で配列の中身を表示しようとすると、この段階で文字化けしていました。
63
+ ```
64
+ #!/bin/bash
65
+ var=$(mysql -u user pass <<EOF
66
+ select name from table1;
67
+ EOF
68
+ )
69
+ array=(`echo $var`)
70
+
71
+ for ((i=0; i<${#array[@]}; i++)) do
72
+ echo ${array[i]}
73
+ done
74
+ ```
75
+
76
+ ちなみに、Mysqlで
77
+ select name from table1;
78
+ を実行した際はGitbashでも文字化けしません。

1

誤字

2020/07/09 10:41

投稿

white_note
white_note

スコア8

title CHANGED
File without changes
body CHANGED
@@ -23,7 +23,7 @@
23
23
  array=(`echo $var`)
24
24
  for ((i=0; i<${#array[@]}; i++)) do
25
25
  echo ${array[i]}
26
- done > ./array.txt
26
+ done > ./file.txt
27
27
  ```
28
28
  DBから取得する情報は日本語なのですが、array.textで文字化けしてしまいます。
29
29
  DB・テーブルの文字コードはUTF8
@@ -49,5 +49,5 @@
49
49
  select name from table1;
50
50
  EOF
51
51
  )
52
- echo ${var} > ./brand_array.txt
52
+ echo ${var} > ./file.txt
53
53
  ```