栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

作为Upstart服务启动时无法读取UTF-8文件名

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

作为Upstart服务启动时无法读取UTF-8文件名

Java使用本地调用来列出目录的内容。基础的C运行时依赖于 语言环境 概念,

String
从文件系统作为文件名存储的字节blob中构建Java 。

从外壳程序(特权用户或非特权用户)执行Java程序时,它会承载由变量组成的 环境

LANG
读取该变量可将字节流转码为Java
String,默认情况下,在Ubuntu上它将与UTF-8编码关联。

请注意,不需要从任何外壳运行进程,但是通过查看代码,Upstart似乎足够聪明,可以理解何时打算从外壳执行配置文件中的命令。因此,假设通过外壳程序调用了JVM,则问题在于

LANG
未设置变量,因此C运行时假定默认字符集,恰好
不是 UTF-8。解决方案在Upstart节中:

description "List UTF-8 enpred filenames"author "Raffaele Sgarro"env LANG=en_US.UTF-8script  cd /workspace  java -jar list.jar test > log.txtend script

我曾经

en_US.UTF-8
用作语言环境,但是任何UTF-8支持的语言都一样。测试的来源
list.jar

public static void main(String[] args) {    for (File file : new File(args[0]).listFiles()) {        System.out.println(file.getName());    }}

该目录

/workspace/test
包含文件名,如
ààà
èèè
等等。现在您可以移至数据库部分;)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414454.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号