自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Windows上創(chuàng)建的文件,上傳到Linux服務(wù)器,文件名亂碼?

系統(tǒng) Linux
先來說一下問題,在 Windows 下創(chuàng)建的一系列文件,上傳到 Linux 服務(wù)器后,出現(xiàn)文件名亂碼,導(dǎo)致文件無法讀取的情況。

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

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

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

于是開始檢查tomcat編碼、操作系統(tǒng)編碼格式,都統(tǒng)一設(shè)置為UTF-8。

Tomcat:

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

Linux 服務(wù)器編碼:

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

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

統(tǒng)一編碼后,問題依然存在。這時(shí)候才意識到,由于文件是在windows下生成的,默認(rèn)編碼都是gbk,所以需要將文件名稱轉(zhuǎn)碼。

使用 convmv 將文件名轉(zhuǎn)碼

將文件名稱轉(zhuǎn)碼,需要用到 convmv,這是一個(gè)轉(zhuǎn)碼工具。

在線安裝 convmv

Linux中安裝命令如下:

yum install convmv

如果系統(tǒng)沒有聯(lián)網(wǎng),或者屏蔽了yum命令,可以先下載程序包,然后安裝。

使用程序包安裝步驟

1).下載

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

根據(jù)操作系統(tǒng)版本選擇相應(yīng)的版本下載:

找到下載地址:

2).安裝

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

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

使用 convmv 對中文文件名進(jìn)行轉(zhuǎn)碼

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

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

上述命令,是將 /opt/ftp 路徑下的所有文件名,都統(tǒng)一轉(zhuǎn)碼為utf8。

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

在 Java Web 工程中應(yīng)用的時(shí)候,每次有新文件上傳,就手動執(zhí)行一下上述shell腳本,顯然是不現(xiàn)實(shí)的,所以最簡單的方法,就是使用 Java 調(diào)用 shell 腳本,讓其自動轉(zhuǎn)碼。

Java 調(diào)用 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();
}

至此,問題解決。

以上就是本次分享全部內(nèi)容,歡迎討論。

責(zé)任編輯:龐桂玉 來源: TIAP
相關(guān)推薦

2019-07-03 14:26:10

Linux服務(wù)器方法

2009-06-29 09:57:05

Unix

2017-03-02 11:58:31

NodeJS服務(wù)器

2009-03-11 09:28:18

文件名亂碼下載瀏覽器PHP

2018-03-28 17:51:24

LinuxUnix

2022-03-01 20:33:50

服務(wù)web項(xiàng)目

2024-06-19 10:43:44

2016-11-18 15:08:54

linux服務(wù)器策略

2021-03-09 09:35:09

鴻蒙HarmonyOS應(yīng)用開發(fā)

2020-12-02 11:48:05

TFTP

2021-06-28 11:30:39

PythonWindows反斜杠

2012-12-24 15:00:56

sis塞班

2011-03-25 15:01:25

Cacti監(jiān)控Windows

2011-03-31 12:48:04

cactiLinuxWindows

2015-10-08 09:38:24

HTTP網(wǎng)絡(luò)協(xié)議文件傳輸

2015-09-29 09:25:20

HTTP網(wǎng)絡(luò)協(xié)議

2015-10-09 09:41:24

HTTP網(wǎng)絡(luò)協(xié)議文件傳輸

2015-10-10 16:46:14

HTTP網(wǎng)絡(luò)協(xié)議文件傳輸

2015-09-28 13:39:13

Http網(wǎng)絡(luò)協(xié)議HTTP

2019-12-20 09:50:42

Windows 10文件Google
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號