最近遇到這樣乙個問題,我上傳檔案沒有轉換字符集windows預設gbk,結果當我需要讀檔案顯示時用utf-8轉當然會出現亂碼,為了解決這個問題,我就將上傳時檔案一同也轉成utf-8了這樣就不會亂碼了,上傳時轉換字符集方法如下:
string root = filepath;//上傳路徑
file rootfile = new
file(root);
//路徑不存在先建立路徑
if (!rootfile.exists())
//獲取字尾type
string suffix =domain.getsuffixname();
//新檔名
string strnewname = domain.getscriptname().trim() + domain.getversionname().trim() + "."
+suffix;
domain.setscripturl("/" +strnewname);
file destfile;
string destfilepath=root+"/"+strnewname;
destfile = new
file(root, strnewname);
outputstream outputstream;
outputstream = new
fileoutputstream(destfile);
//file是上傳過來的檔案,存放為臨時tmp
file file =domain.getfile();
string context = "";
inputstreamreader isr;
isr = new inputstreamreader(new fileinputstream(file), "gbk");
bufferedreader br = new
bufferedreader(isr);
string line;
while ((line = br.readline()) != null
) br.close();
byte content =context.getbytes();
context = new string(content, "utf-8");
bufferedwriter writer;
fileoutputstream fos = new fileoutputstream(destfilepath, true
);system.out.println(root+"/"+strnewname);
writer = new bufferedwriter(new outputstreamwriter(fos, "utf-8"));
writer.close();
GBK與UTF 8 轉換亂碼詳解 ZZ
應該編碼轉換的時候丟失了位元組,你沒有發現你輸入的是偶數個字的時候正常,奇數個的時候亂碼,具體的字碼長度我也不是很了解 string str1 new string str.getbytes utf 8 gbk system.out.println str1.length string str2 n...
理解並解決GBK轉UTF 8奇數中文亂碼
文章源自 理解並解決gbk轉utf 8奇數中文亂碼 最近在做乙個反饋功能,把資料反饋到對方公司 我公司是gbk編碼,對方公司是utf 8編碼。因此,我需要將gbk編碼資料轉換成utf 8 編碼資料,這樣對方 才不會亂碼。最簡單的方法是將httpclient的contentcharset設定為utf ...
C語言漢字gbk轉utf 8
一 注意事項 1.請注意漢字內碼 對應字元為 xcc等 和列印出的轉義字元 xcc 的區別!該問題導致我們程式除錯了差不多一整天!見 c語言中轉義字元的使用 2.另外庫函式iconv會把傳入的引數指標移位,這是正常的 請不要認為是自己程式有問題。3.我的終端是utf 8格式,對於其他編碼不能顯示。二...