Apache FtpServer 如何解决支持中文问题?

SeanCai 发布于 2010/08/14 15:56
阅读 3K+
收藏 0

使用 ftp 客户端上传文件(文件名是中文)到服务器端,在浏览器中访问 Apache FtpServer 时出错,请问如何解决支持中文问题?

加载中
0
Barry Wei
Barry Wei

是浏览器的问题,又不是ftpserver的问题额。

0
SeanCai
SeanCai

不会呀,如果是浏览器的问题最多显示的是乱码,但是在浏览器中看到的是说xml解析错误,删掉文件名为中文的文件,显示就正常啦。

0
G.
G.

注意中文的编码问题,

如果服务器是 linux / BSD  之类的, 大多数是 utf-8 编码.

如果是 windows 服务器的, 大多数是 GB2312/ GBK 编码.

你上传文件的时候需要设置对应的 字符编码.

如果你的 FTP 客户端 没有提供此功能,  推荐你使用 FileZilla .

0
正在南宁

mina2.0.4将编码固定为UTF-8,而window系统多数默认编码为GBK,搜索mini的源码,将UTF-8改为GBK即可解决

第一个修改地方:IODataConnection类

     public final void transferToClient(FtpSession session, final String str)
            throws IOException {
        OutputStream out = getDataOutputStream();
        Writer writer = null;
        try {
            writer = new OutputStreamWriter(out, "GBK");
            writer.write(str);


            // update session
            if (session instanceof DefaultFtpSession) {
                ((DefaultFtpSession) session).increaseWrittenDataBytes(str
                        .getBytes("GBK").length);
            }

第二个修改地方:

public class FtpServerProtocolCodecFactory implements ProtocolCodecFactory {
    private ProtocolDecoder decoder = new TextLineDecoder(Charset
            .forName("GBK"));
第三个修改地方:

public class FtpResponseEncoder extends ProtocolEncoderAdapter {
    private static final CharsetEncoder ENCODER = Charset.forName("GBK")
            .newEncoder();




0
微笑吧
微笑吧

使用在xshell中使用ftp命令创建中文文件都会变成???

返回顶部
顶部