2018年6月9日

LUIS Python 2 sample 中文輸入亂碼

問題:

row_input 輸入中文會變成亂碼


問題描述:

筆者的環境為Windows 10

日前從微軟的Git下載LUIS Python2 範例

    TEXT = raw_input(u'Please input the text to predict:\n')
     CLIENT = LUISClient(APPID, APPKEY, True)
     res = CLIENT.predict(TEXT)
     while res.get_dialog() is not None and not res.get_dialog().is_finished():
         TEXT = raw_input(u'%s\n'%res.get_dialog().get_prompt())
         res = CLIENT.reply(TEXT, res)
     process_res(res)
except Exception, exc:
     print(exc)


並進行中文輸入, 會得到下列錯誤

image

解法:

1.Python 2 的row_input吃進來文字的編碼是根據作業系統, 我的win 10是繁體中文版,便是Big5

2. 將raw_input先解big5, 再轉為utf8

    TEXT = raw_input(u'Please input the text to predict:\n').decode(‘big5’).encode(‘utf8’)

後續:

1. pyhton 3因為全部UTF8編碼, 因此無此問題

沒有留言:

張貼留言