這個也是卡關了兩小...
本來預期是沒有難度的
不知為什麼連得到但就是無法上網
後來解決了但也不曉得原因是什麼= =
總的言之
中華電信的人給DSL-6641K的設定相當陽春
加密法選的是WEP 64bit
擺明讓人偷連XDDD
不過秉持能用就好,其餘不管的一般user觀念
我未曾想去動他
沒想到最後把它改成WPA2就輕鬆連上了
真不曉得為什麼= =
簡而言之
NETGEAR WDNA3100網卡 + DSL-6641K不能選WEP加密法
不然就是老死上不了網,完畢
UPDATE:
改完之後還是只能機率性上網,不然就要等long long time
到官網下載最新版的driver就沒問題啦
總網頁瀏覽量
2012年9月27日 星期四
卡關兩天的編碼問題= =
這件事原本我們所想的是遠遠的單純
至今才恍然大悟...
起初
我們的網頁資料是透過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)
哦~~資料庫都不用動,讀出來的資料都頭好壯壯啦!!!
為了這件是蠢了兩天XD
UPDATE:
不想改資料庫設定的話
也可以從程式下手,在query前先下SET CHARACTER_SET_RESULTS=utf8即可
至今才恍然大悟...
起初
我們的網頁資料是透過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即可
訂閱:
文章 (Atom)