我有一个 Java 类,可以将文本文件从 Windows 客户端上传到 Linux 服务器。
我尝试上传的文件是使用 Cp1252 或 ISO-8859-1 编码的。
上传文件后,它会使用 utf-8 进行编码,因此无法读取包含 éèà 等重音符号的字符串。
命令
file -i *
在 linux 服务器中告诉我它是使用 utf-8 编码的。
我认为在上传时编码已更改,因此我将此代码添加到我的 servlet:
String currentEncoding=System.getProperty("file.encoding");
System.setProperty("file.encoding", "Cp1252");
item.write(file);
System.setProperty("file.encoding", currentEncoding);
在 jsp 文件中,我有以下代码:
<form name="formUpload"
action="..." method="post"
enctype="multipart/form-data" accept-charset="ISO-8859-1">
我用来上传文件的库是 apache commun。
任何人都有线索,因为我真的没有想法了!
谢谢,
奥特曼·马利赫