成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Windows上創建的文件,上傳到Linux服務器,文件名亂碼?

系統 Linux
先來說一下問題,在 Windows 下創建的一系列文件,上傳到 Linux 服務器后,出現文件名亂碼,導致文件無法讀取的情況。

事情的起因是這樣的...

最近有這樣一個需求:在Java Web工程中讀取本地某一個文件夾(固定路徑,寫在配置文件中)下的所有文件,然后將其導入到系統中。最直接的方案就是使用java.io.File的listFiles方法列出這個文件夾中的所有文件,然后在做處理,我們也是這樣做的。

在本地測試沒有任何問題,但是一旦部署到生產環境(Linux系統環境),問題就來了:由于文件是通過FTP上傳到固定文件夾中的,所以有一些中文名稱的文件,在上傳到Linux系統中后,就出現了亂碼,程序也無法讀取到。

于是開始檢查tomcat編碼、操作系統編碼格式,都統一設置為UTF-8。

Tomcat:

catalina.sh中添加:export LANG=zh_CN.UTF-8

Linux 服務器編碼:

vi /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"

注:檢查操作系統編碼命令為echo $LANG。查看操作系統語言命令:locale

統一編碼后,問題依然存在。這時候才意識到,由于文件是在windows下生成的,默認編碼都是gbk,所以需要將文件名稱轉碼。

使用 convmv 將文件名轉碼

將文件名稱轉碼,需要用到 convmv,這是一個轉碼工具。

在線安裝 convmv

Linux中安裝命令如下:

yum install convmv

如果系統沒有聯網,或者屏蔽了yum命令,可以先下載程序包,然后安裝。

使用程序包安裝步驟

1).下載

下載地址為:??https://pkgs.org/download/convmv??

根據操作系統版本選擇相應的版本下載:

找到下載地址:

2).安裝

將文件拷貝到一個路徑下(比如home),執行安裝命令:

sudo rpm -ivh convmv-1.15-2.el7.noarch.rpm

使用 convmv 對中文文件名進行轉碼

安裝完 convmv 之后,就可使用 convmv 轉碼中文文件名了。為了操作方便,可寫一個shell腳本,將文件名稱轉碼:

#!/bin/bash
convmv -f gbk -t utf-8 -r --notest /opt/ftp

上述命令,是將 /opt/ftp 路徑下的所有文件名,都統一轉碼為utf8。

這樣中文名稱的文件就能被程序讀取到了。

在 Java Web 工程中應用的時候,每次有新文件上傳,就手動執行一下上述shell腳本,顯然是不現實的,所以最簡單的方法,就是使用 Java 調用 shell 腳本,讓其自動轉碼。

Java 調用 shell 腳本的代碼如下:

List();
commend.add("convmv");
commend.add("-f");
commend.add("gbk");
commend.add("-t");
commend.add("utf-8");
commend.add("-r");
commend.add("--notest");
commend.add("/opt/ftp");
try{
ProcessBuilder builder = new ProcessBuilder();
builder.command(commend);
Process proc = builder.start();
proc.waitFor();
}catch(Exception e){
e.printStackTrace();
}

至此,問題解決。

以上就是本次分享全部內容,歡迎討論。

責任編輯:龐桂玉 來源: TIAP
相關推薦

2019-07-03 14:26:10

Linux服務器方法

2009-06-29 09:57:05

Unix

2017-03-02 11:58:31

NodeJS服務器

2009-03-11 09:28:18

文件名亂碼下載瀏覽器PHP

2018-03-28 17:51:24

LinuxUnix

2022-03-01 20:33:50

服務web項目

2024-06-19 10:43:44

2016-11-18 15:08:54

linux服務器策略

2011-03-25 15:01:25

Cacti監控Windows

2011-03-31 12:48:04

cactiLinuxWindows

2021-03-09 09:35:09

鴻蒙HarmonyOS應用開發

2020-12-02 11:48:05

TFTP

2021-06-28 11:30:39

PythonWindows反斜杠

2012-12-24 15:00:56

sis塞班

2015-10-09 09:41:24

HTTP網絡協議文件傳輸

2015-10-10 16:46:14

HTTP網絡協議文件傳輸

2015-09-28 13:39:13

Http網絡協議HTTP

2010-12-21 10:54:01

Linux漢字亂碼

2015-09-29 09:25:20

HTTP網絡協議

2015-10-08 09:38:24

HTTP網絡協議文件傳輸
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜视频在线 | 日韩欧美亚洲一区 | 久草在线 | 精品欧美一区二区三区免费观看 | 亚洲精品18 | 亚洲视频三区 | 国产精品欧美一区二区三区 | 精品国产视频 | 国产精品久久久久久久久久久免费看 | 一区视频 | 欧美一级高清片 | 中文字幕成人av | 一区二区三区免费 | 亚洲免费视频在线观看 | 国产.com| 精品视频99 | 国产精品视屏 | 欧美一级欧美三级在线观看 | 自拍偷拍亚洲视频 | 在线免费观看亚洲 | 国产欧美一区二区三区在线看 | 中文成人无字幕乱码精品 | 久久久久久久国产精品视频 | 午夜99 | 日本中文字幕一区 | 亚洲免费人成在线视频观看 | 国产亚洲第一页 | 久久久99精品免费观看 | 91玖玖 | 国产精品久久久久久久久久久久 | 国产精品久久久久一区二区三区 | 日韩一区二区视频 | 免费在线观看av片 | 亚洲3p| 成人3d动漫一区二区三区91 | 欧美一区二区三区在线观看 | 日韩视频中文字幕 | 国产精品久久久久久久久久久久久久 | 天天综合久久 | 日日操视频 | 日本人做爰大片免费观看一老师 |