-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
请问如何在Ubuntu里导出xlsx文件时,文件名支持中文 #395
Comments
我在网上查了一下有挺多这种场景,出问题应该是Paths.get(comPath + "/MO样例1.pcap.xlsx")这一句,你可以尝试独立出这一句来执行并验证,我并没有这样的环境所以无法给出准确的解决办法,以下解决方法可以逐一尝试
|
感谢大佬,可以确认就是文件名称带中文导致的,把中文替换掉是ok的,不过提供的两个方法仍然不能正确的显示中文文件名 |
方法2是HTTP下载后中文无法被识别吗?如果是这样的话可以设置Response头来解决,直接使用以下代码测试一下
|
方法2是这个意思吗,我理解错了; |
应该是最初的写法引起误解了,方法2直接写到输出流是为了规避将中文文件名写到本地上,所以直接写入response。你可以尝试一下上面的完整示例代码看一下是否能正常。 即便正常也会有一定问题,上面示例代码只支持同步下载,数据量大的话可能会造成前端页面假死,异步下载的话可以将文件名进行编码或者用ID代替,下载的时候使用这个编码或ID找到实际文件名,然后使用上面的方法直接下载即可。 |
谢谢大佬,你给的方法2确实下载没有问题,名称中文都正常 我最后重新在ubuntu22.04上做了个支持中文的镜像,然后启动docker出现了 Cannot create GC thread. Out of system resources.折腾不出来,最后直接用了--privileged启动docker 就正常启动了,结果文件中文名称也正常 提问的那个版本的docker镜像应该是中文设置没生效导致的,但是也很奇怪只有文件名中文异常,文件里面的sheet名称 文件内容、系统里的log打印中文都正常。。。 不过总之就是docker镜像的问题,重新做一个就好了。。。谢谢大佬 |
导出数据的时候报错如下:看着是中文不支持,在windows下没有这个问题,在docker部署的 Ubuntu22.04下
java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: MO样例1.pcap.xlsx
at sun.nio.fs.UnixPath.encode(UnixPath.java:147)
at sun.nio.fs.UnixPath.(UnixPath.java:71)
at sun.nio.fs.UnixFileSystem.getPath(UnixFileSystem.java:281)
at sun.nio.fs.AbstractPath.resolve(AbstractPath.java:53)
at org.ttzero.excel.entity.IWorkbookWriter.reMarkPath(IWorkbookWriter.java:104)
at org.ttzero.excel.entity.e7.XMLWorkbookWriter.reMarkPath(XMLWorkbookWriter.java:436)
at org.ttzero.excel.entity.e7.XMLWorkbookWriter.writeTo(XMLWorkbookWriter.java:118)
at org.ttzero.excel.entity.Workbook.writeTo(Workbook.java:680)
打印看系统编码
file.encoding: UTF-8
LANG: zh_CN.UTF-8
LANGUAGE: zh_CN:en_US
LC_ALL: zh_CN.UTF-8
业务代码就是在writeTo报错:
Workbook wb = new Workbook(fileName); //fileNameb为 MO样例1.pcap.xlsx
//数据导出
wb.writeTo(Paths.get(comPath));
请问这是编码问题吗,要怎么改才能支持中文
The text was updated successfully, but these errors were encountered: