讓 YUI DataTable 使用 JSON Data Over XHR 時支援中文 field

原由

YUI 真是個好東西,最近拿它來寫公司的程式。
天殺的! 不知以前是誰把資料庫欄位都用中文命名。
我輸出 JSON 長這樣...


{
 "ResultSet": {
  "Result": [{
   "ID": "1234",
   "姓名": "林洵賢",
   "電話": "1234567890"

... 省略

話說當今瀏覽器 UTF8 編碼的頁面 JavaScript 運作起來是沒什麼問題。
但 YUI 是外國人設計的,用它的 DataSource 抓資料後認為這些以中文為 key 的是壞東西會自動被忽略。


解決

追程式囉! 我原本是用 DataTable 當然從它開始追,追到另一個模組 DataSource 找到了!
我用的是 YUI 2.9 版,修改 \build\datasource\datasource*.js 原始程式,把

[^\w\.\$@]

改成

[^\w\.\$@\u4e00-\u9fa5]

就支援中文 key 了。


或許這篇算是寫給自己的筆記,沒接觸過的應該看沒有。
如果你不幸也在找同樣的解決方案 google 到我,那恭喜你囉,留個言吧!


後記
後來發現欄位排序中文Key也有問題,要修改 datatable*.js 尋找 [^\w\-] 改為 [^\w\-\u4e00-\u9fa5] 即可。

5 個回應:

Fangyaya 提到...

michael kors handbags
louis vuitton outlet
toms shoes
coach factory outlet online
beats headphones
lebron james shoes
nike air force
coach outlet online
coach outlet
kate spade handbags
michael kors handbags
polo ralph lauren
michael kors outlet clearance
true religion
basketball shoes
christian louboutin shoes
louis vuitton bags
ray ban sunglasses outlet
toms shoes
kate spade outlet
cartier watches
polo ralph lauren
jeremy scott shoes
michael kors handbags
timberland outlet
kate spade handbags
ray ban sunglasses
oakley sunglasses wholesale
jordan 6
oakley sunglasses
instyler curling iron
jordan concords
lebron james shoes 13
adidas nmd
kate spade
toms
20167.26chenjinyan

chenmeinv0 提到...

north face jackets
moncler coats
fitflop shoes
ugg outlet
ray ban outlet
canada goose sale
nike tn pas cher
michael kors outlet
oakley sunglasses outlet
pandora jewelry
2016.10.27xukaimin

chenlina 提到...

ralph lauren
oakley sunglasses canada
north face jackets
ugg boots
ray ban wayfarer
cheap basketball shoes
nike air max
cheap mlb jerseys
coach outlet
nike roshe run
chenlina20170109

Meiqing Xu 提到...

coach outlet
tiffany outlet
canada goose outlet
michael kors outlet
ed hardy
birkenstocks
air jordan retro
yeezy boost
longchamp uk
cheap oakley sunglasses
20170224caiyan

chenlina 提到...

coach outlet
oakley sunglasses wholesale
ralph lauren uk
louis vuitton outlet online
gucci shoes
michael jordan shoes
clarks shoes
polo ralph lauren
rolex datejust
hermes uk
chenlina20170720

張貼留言