總瀏覽量

2012年9月27日 星期四

NETGEAR WDNA3100網卡 + DSL-6641K上網問題

這個也是卡關了兩小...
本來預期是沒有難度的
不知為什麼連得到但就是無法上網
後來解決了但也不曉得原因是什麼= =

總的言之
中華電信的人給DSL-6641K的設定相當陽春
加密法選的是WEP 64bit
擺明讓人偷連XDDD
不過秉持能用就好,其餘不管的一般user觀念
我未曾想去動他
沒想到最後把它改成WPA2就輕鬆連上了
真不曉得為什麼= =

簡而言之
NETGEAR WDNA3100網卡 + DSL-6641K不能選WEP加密法
不然就是老死上不了網,完畢

UPDATE:
改完之後還是只能機率性上網,不然就要等long long time
到官網下載最新版的driver就沒問題啦

卡關兩天的編碼問題= =

這件事原本我們所想的是遠遠的單純
至今才恍然大悟...

起初
我們的網頁資料是透過PIG跑hadoop map reduce job得到結果並存在HDFS上
再透過sqoop export至mysql
最後display到網頁
然而資料中city值卻會出現亂碼

因此我們認為在PIG call UDF時得到的的資料就不是UTF-8的編碼
導致最後呈現在UTF-8網頁上會有問題

[Solution1]
改UDF,將回傳值convert至UTF-8

然而發現JAVA本身就是Unicode
這樣回傳回來的應該沒問題阿!!

後來發現原來我們的MySQL character set都是latin1
所以是不是因為將UTF-8值塞入至latin1造成亂碼呢

[Solution2]
將Column編碼改成UTF-8
並將原本存的值CONVERT成UTF-8看是否會正常顯示
結果還是失敗= =

跟據了解MySQL存值是Binary Safe的
所以設定column的編碼只是告訴他用什麼碼來解讀
因此所存的值應該是沒有問題
那到底問題在哪呢
只剩下取值階段解譯錯了
所以進到MYSQL調整client,connection,results的字集設定

mysql > set character_set_client =utf8
mysql > set character_set_connection =utf8
mysql > set character_set_results =utf8
mysql > show variables like 'char%';


+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

這樣行了吧
結果卻是無奈

幾番排列組合後結果依然沒有進展
後來從新連入後才發現!!
這些值無法on the fly 改變
所以...

[Solution 3] !!!正解阿!!!

edit /etc/my.cnf 加入下面的設定,並RESTART MYSQL
[mysqld]
#   character-set-server=utf8
#   collation-server=utf8_general_ci
   init-connect='SET NAMES utf8'
[client]
   default-character-set=utf8
service mysqld restart

哦~~資料庫都不用動,讀出來的資料都頭好壯壯啦!!!
為了這件是蠢了兩天XD

UPDATE:
不想改資料庫設定的話
也可以從程式下手,在query前先下SET CHARACTER_SET_RESULTS=utf8即可