使用node scribe上報日誌,查詢結果的時候發現中文字符變成了亂碼,經詢問服務端,日誌在上傳時就已是亂碼了,說明是端上的問題,因此排查node scribe的問題。node
借用網上一張scribe架構圖git
據圖能夠看出scribe是基於Thrift通訊的,node-scribe中也是依賴了thrift包。數據編碼的問題通常就是在通信層。github
要解決中文編碼問題,須要對node-scribe的thrift使用進行調整。具體兩點:json
將目前node scribe包的thrift版本從0.7.0 升級到0.9.3架構
指定thrift的數據傳輸按幀的形式發送this
thrift.createConnection(this.host, this.port, {transport: thrift.TFramedTransport});
因爲這裏須要改動node scribe包,怎麼辦呢?編碼
github上fork一份,本身改代碼,而後在package.json中將scribe包指定爲本身git的項目地址spa
若是改動後仍是不能解決中文編碼問題,能夠繼續搜索「thrift中文編碼」,而不是搜索scribe日誌