1. 程式人生 > >java上傳檔案到linux上 防止檔名中文亂碼

java上傳檔案到linux上 防止檔名中文亂碼

在windows系統下 預設編碼是GBK/GB2312的編碼格式,linux上預設為utf-8的編碼格式。

當我們在windows上上傳檔案的時候,JVM會根據本身的作業系統所預設的編碼格式 編譯成unicode位元組陣列,進行儲存。

然後解析的時候也會根據本身的作業系統預設的編碼格式進行解析。

上傳檔案中文亂碼時:  JVM編譯成gbk格式的unicode位元組陣列,然後解析成utf-8的格式,所以導致亂碼。

亂碼的本質是:   字串原本的編碼格式  和 讀取解析的編碼格式不一致  所造成的 。

在java中使用  new String(bytes,charset); 方法可以解決亂碼問題。

 bytes :表示編譯採用什麼格式進行編譯 ,charset : 表示使用什麼格式進行解析

在windows上    如:

String str="我很帥哦";

System.out.println(new String(str.getBytes(),"gbk")); 是正確的

System.out.println(new String(str.getBytes("utf-8"),"utf-8"));  也是正確的

System.out.println(new String(str.getBytes("gbk"),"utf-8"));  是錯誤的 

那麼 如何將GBK 轉化成utf-8呢? (實際上是unicode轉成utf-8)

byte[] utfbytes=str.getBytes("utf-8");

String strFinsh=new String (utfbytes,"utf-8");

簡寫:System.out.println(new String(str.getBytes("utf-8"),"utf-8"));  

utf-8轉成gbk 也是一樣的 

new String(str.getBytes("gbk"),"gbk");

 getBytes(charset)

在JDK中這樣描述的:Encodes this String into a sequence of bytes using the named charset, storing the result into a new byte array.

相關推薦

java檔案linux 防止檔名中文亂碼

在windows系統下 預設編碼是GBK/GB2312的編碼格式,linux上預設為utf-8的編碼格式。 當我們在windows上上傳檔案的時候,JVM會根據本身的作業系統所預設的編碼格式 編譯成unicode位元組陣列,進行儲存。 然後解析的時候也會根據本身的作業系統預

java圖片-檔案/圖片到七牛

java圖片上傳-檔案(圖片)上傳到七牛 一、在配置檔案中引入依賴(注:七牛開發者url:https://developer.qiniu.com/kodo) <-- 引入依賴 --> <dependency> <

Python下ftp檔案linux伺服器

模組介紹: 1 from ftplib import FTP 2 ftp = FTP() #設定變數 3 ftp.set_debuglevel(2) #開啟除錯級別2 顯示詳細資訊 4 ftp.connect("IP", "port") #連線ftp, IP和埠

Java Web中使用JSPSmartUpload控制元件實現檔案和下載(解決了中文亂碼問題)(JSP頁面採用GBK編碼)

package edu.uestc.updown; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletConfig; import javax.servlet.ServletException

java 單個檔案, 批量檔案,單個下載,批量打成zip壓縮包下載檔案(如果不能接受httpsevletrequest請求的檔案可以使用MultipartFile[] files)

package net.wkang.intelligent_audit.hospitalization.utils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor

用pscp命令將windows檔案linux

1.pscp -P 埠號 檔案位置 伺服器:目標位置 提示拒絕設定環境變數。 2.這時開啟putty設定如下: 將紅色圈出的變數刪除。 3.再輸入步驟1中的命令   到putty中查詢是否已上傳 可以看到test.txt已上傳到linux系統下

安裝FTP 將本地專案或者檔案linux

安裝FTP  將本地專案或者檔案上傳到linux上 1-搭建FTP伺服器 FTP是指File Transfer Protocol(檔案傳輸協議),主要實現兩個功能:上傳,將本地檔案上傳到遠端計算機; 1.1. 掛載光碟機 mkdir /mnt/cdrom m

SpringCloud 檔案,經過Zuul,中文檔名亂碼解決辦法

網上比較常見的解決方案是在uri前加/zuul 使用zuul的servlet繞開springmvc來解決上傳檔案亂碼問題 比如:原來你上傳檔案的路徑是/api/file/upload, 則你可以通過uri /zuul/api/file/upload來呼叫介面上傳檔案

CKEditor+CKFinder for java (檔案視訊、新增行距編輯等等)

         CKEditor 、CKFinder    相互融合要注意的細節的確很多,因為功能的強大和介面的優勢,花費一些時間整合還是有意義的。           下載外掛:        CKEditor  : http://ckeditor.com/    

在Windows通過Xshell將文件Linux

es2017 如果 programs ip地址 主機 ica /usr rep 用戶名 步驟: 一、下載Xshell 二、在Linux主機上,安裝上傳下載工具包rz及sz   如果不知道你要安裝包的具體名稱,可以使用yum provides */name 進行查找系統自帶軟

jenkins---windows構建項目jar包linux

img 成功 定向 pan txt con 重定向命令 term tails 2018年02月05日 11:02:17 閱讀數:851 1,怎麽構建jar包可以參考下此鏈接:http://blog.csdn.net/zk0920zk/article/detai

美化檔案框(圖片框)

//initfunction initFile(fo){var divFile = document.createElement("div");divFile.className="file"; fo.parentNode.insertBefore(divFile,fo);divFile.appendChil

vue-resource+iview檔案取消

vue-resource+iview上傳檔案取消上傳 子元件: <template> <div class="upload-area-div"> <Upload :type="upType" class="upload-area"

在Windows下生成的shell文件在Linux發現無法執行

code header sed 循環 發現 win localhost 沒有 不一致 為了批量生成shell文件,我在Windows下用knime循環生成一批shell文件,在上傳到Linux上執行時發現報錯: [ft@localhost Stock]$ ./f_wdt_

retrofit2 進度回撥與 Interceptor衝突引起檔案資料兩次

原因:在開發過程中,遇到過上傳檔案資料上傳兩次的問題,發現是在OkHttp里加入了預設的HttpLoggingInterceptor引起的。在下面程式碼呼叫了wirteTo方法,導致會再次執行UploadFileRequestBody.writeto方法重複寫入資料。/*

h5特性formdata帶引數檔案到node端

html: <input type="file" id="addpic" multiple="multiple"/> <button id="uploadpic" style="

fastDFS中使用php檔案 -- http與下載圖片

CleverCode研究完fastDFS後,嘗試著使用php上傳檔案到fastdfs。 1 fastDFS安裝   fastdfs分散式架構配置參考:http://blog.csdn.net/clevercode/article/details/52267080。   fa

解決部署在Linux下的java程式檔案檔名中文亂碼

找了一圈資料,把centos的字符集、tomcat中server.xml中的“URIEncoding”都更改為UTF-8之後還是不成功。最終在tomcat/bin/catalina.sh檔案中增加了“export LANG=zh_CN.UTF-8”,成功解決了問題。

java檔案linux 下的 tomcat 檔案伺服器

linux 安裝 tomcat 伺服器,我安裝的是 tomcat 7,未測試其他版本 linux 安裝 tomcat 連線 https://mp.csdn.net/mdeditor/83987640# 本次使用的阿里雲 linux os7 , tomcat 7 + ssm 1、修改目

Windows 的java客戶端實現檔案Linux的Hadoop叢集(注意ip和埠是否一致)

我這幾天一直在學大資料,處於入門階段,然後老師的視訊中教學有用windows的java客戶端上傳檔案到Linux的Hadoop叢集, 但是這邊出BUG了一直上傳不上去,執行程式後一直沒反應。。。。弄了幾天(雖然這幾天在做前端專案~~~) 然後問群裡的大佬,他們說應該是ip和埠