上傳檔案亂碼,GBK轉UTF 8

2022-08-04 21:57:12 字數 1402 閱讀 5465

最近遇到這樣乙個問題,我上傳檔案沒有轉換字符集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格式,對於其他編碼不能顯示。二...