台灣最大程式設計社群網站
線上人數
1017
 
會員總數:246740
討論主題:190153
歡迎您免費加入會員
討論區列表 >> Android APP 開發 >> 列印TM-L90中文
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
列印TM-L90中文
價值 : 20 QP  點閱數:4735 回應數:5
樓主

浮雲笑
初學者
14 2
88 17
發送站內信

現在公司需要在android 上開發列印界面,使其輸出到EPSON TM-L90 熱感微印表機
使用 esc/pos 指令輸出英文 數字都沒問題,但是就是big5中文會變成亂碼

請問各位先進,我應該怎麼下才會出現正確的中文@@?

搜尋相關Tags的文章: [ esc ] , [ pos ] , [ big5 ] , [ android ] , [ tm-l90 ] , [ epson ] ,
本篇文章發表於2012-10-01 10:22
1樓
回應

Pan01
檢舉此回應
字串送進 列印前 , 你有做 任何編碼的 轉換嗎 ?

==========================================

以下 純屬 猜測 , 但可試試 看 :


本篇文章回覆於2012-10-01 18:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

浮雲笑
檢舉此回應
謝謝,我這就去試試看
本篇文章回覆於2012-10-02 10:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

浮雲笑
檢舉此回應
使用 new String(str.getBytes("UTF-8"), "big5");
列印出來還是亂碼

直接輸出中文的ascii 也是亂碼;

使用 esc/pos 指令 先輸出 指定漢字列印 FS &
再輸出有中文 不過明明變數是打 "臉" 一個字 輸出卻變成 "嚙踝蕭" 3個字

恩~好困難阿~

本篇文章回覆於2012-10-04 10:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

Pan01
檢舉此回應
new String(str.getBytes("UTF-8"), "big5");

這樣轉編碼的 code 有 很大的問題.
str 是 unicode 編碼

str.getBytes("UTF-8") 輸出的是 UTF-8 編碼的 Byte[].

new String(str.getBytes("UTF-8"), "big5"); 等於是 將 UTF-8 編碼 的 內容 , 用 big5 編碼 轉換為 unicode 編碼 .

所以 ,難怪 你 輸入 "臉" 一個字 輸出卻變成 "嚙踝蕭" 3個字

=====================================

你 先列出 輸出到 印表機 的 完整 Source Code 吧!
這樣才能夠繼續指導你 ......


本篇文章回覆於2012-10-04 10:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

浮雲笑
檢舉此回應
感謝 問題已解決~!

byte big5_word[] = new byte[255];
String test_code= "臉,年份:2012/10/10";
//strint unicode to big5
try {
big5_word=test_code.getBytes("big5");
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
}

//-下面是TM-L90 的列印 比較無關~
int offset = 0; // It outputs from the head of a buffer.
int size = big5_word.length; // The size of output data is set up.
int timeout = 5000; // The longest waiting time is set as 5 seconds.
try {
mPort.write(big5_word, offset, size, timeout);
mMessageBox.setText("SUCCESS");
}
catch ( EpsonIoException e ) {
dispErrStatus(e.getStatus());
}
本篇文章回覆於2012-10-05 12:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.