歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu下使用Eclipse CDT編寫的C代碼移植到AIX後亂碼問題解決

Ubuntu下使用Eclipse CDT編寫的C代碼移植到AIX後亂碼問題解決

日期:2017/2/28 16:08:23   编辑:Linux教程

情景:由於AIX下編譯器總是沒弄明白。環境和makefile折騰好幾天,代碼沒寫幾行。索性直接在Ubuntu上開發了事

Ubuntu下開發環境: oci instant + Eclipse CDT + gsoap 2.7.9l + markup

就是用gsoap開發服務器端,接受客戶端請求,然後解析請求參數。請求參數是xml格式的字符串。解析使用markup。根據請求參數查庫,查到的數據組包成xml格式的字符串,該字符串做為響應 發送走。

問題:開發完事後,將代碼放到AIX下。打印中文全是亂碼啦!!!

分析:Eclipse自動把文件編成UTF-8格式的。中文字符也是如此。但是AIX服務器的當前字符集不是UTF-8的。可能是GB2312或GB18030.

應該是GBXX這種字符集對UTF-8無法顯示。不能讓系統適應我的程序吧,所以必須把所有文件轉碼。可憐的是Ubuntu下一些源碼是從windows系統弄過來的。本身就是亂碼了。

做法:笨笨的做了下:在服務器下用UE打開中文出現亂碼文件,在windows下找到同一個不是亂碼的源碼文件(沒有我就歇菜了),copy不是亂碼文件所有內容覆蓋亂碼。之後用UE將UTF-8轉ASII碼。然後再轉UNIX。然後上傳。一個個的轉啊,轉啊。都轉完了FTP上傳。重新編譯通過。執行,ok。全是中文了。

猜測: 可能是服務器的GBXXX默認字符集對ASII碼編碼格式的c/c++文件中文支持較好吧。

Copyright © Linux教程網 All Rights Reserved