Java在osx和linux上读取文件系统文件名的方式有所不同

恐惧的

我有一个Java程序,几乎可以完美运行。我正在Mac上进行开发,并正在将linux投入生产。当mac搜索文件系统并将新文件名插入数据库时​​,它工作得很好。但是,当我按下linux框并执行搜索/插入操作时,它会找到带有某些字符的文件,例如IE:BélaFleck。它们在数据库以及mac和linux文件系统中看起来与我相同。实际上,mac和linux盒已将NFS挂载到文件所在的第3个系统(linux)。

我已经转储了字节,可以看到linux和mac如何从文件系统BélaFleck中看到字符串。

Linux:

utf8bytes[0] = 0x42
utf8bytes[1] = 0x65
utf8bytes[2] = 0xcc
utf8bytes[3] = 0x81
utf8bytes[4] = 0x6c
utf8bytes[5] = 0x61
utf8bytes[6] = 0x20
utf8bytes[7] = 0x46
utf8bytes[8] = 0x6c
utf8bytes[9] = 0x65
utf8bytes[10] = 0x63
utf8bytes[11] = 0x6b

linux says LANG=en_US.UTF-8

苹果电脑:

utf8Bytes[0] = 0x42
utf8Bytes[1] = 0xc3
utf8Bytes[2] = 0xa9
utf8Bytes[3] = 0x6c
utf8Bytes[4] = 0x61
utf8Bytes[5] = 0x20
utf8Bytes[6] = 0x46
utf8Bytes[7] = 0x6c
utf8Bytes[8] = 0x65
utf8Bytes[9] = 0x63
utf8Bytes[10] = 0x6b

mac says LANG=en_US.UTF-8

尝试了这个,仍然没有喜悦。

java -Dfile.encoding=UTF-8

我正在使用java nio文件来获取目录:

java.nio.file.Path path = Paths.get("test");

然后走在路上

Files.walkFileTree(path, new SimpleFileVisitor<Path>() {

然后,由于这是测试路径中的子目录:

 file.getParent().getName(1).toString()

任何人都对这里的故障以及如何解决这个问题有任何想法?

谢谢。

VGR

一些搜索显示OS X总是分解文件名:

这向我暗示您可能不小心切换了输出:第一个字节数组被分解了,所以我猜想它是从Mac提取的,而第二个是从Linux提取的。

无论如何,如果希望它们对于所有系统都相同,则可以自己进行分解:

String name = file.getParent().getName(1).toString();
name = Normalizer.normalize(name, Normalizer.Form.NFD);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Jar文件在Mac和Linux上的工作原理有所不同

来自分类Dev

为什么文件系统在“ df”和“ fstab”中有所不同?

来自分类Dev

从文件和管道读取时,Shell程序的行为有所不同

来自分类Dev

Java SE 6和Java SE 8 JRE在Windows 7上的行为有所不同(文件权限)

来自分类Dev

Chrome和其他操作系统上的“ Open Sans”渲染方式有所不同

来自分类Dev

在Mac和Windows上,Python读取tif图像的方式有所不同。为什么?如何?哪个是对的?怎么修?

来自分类Dev

linux cksum命令值在不同系统上是否有所不同?

来自分类Dev

为什么GradientPaint在MAC OS上的Java 6和Java 7/8中绘制方式有所不同

来自分类Dev

我的网站标题在Chrome和Firefox上的显示方式有所不同?

来自分类Dev

SVG在Chrome和Firefox上的显示方式有所不同

来自分类Dev

文本框在IE和Chrome上的呈现方式有所不同

来自分类Dev

网站在Firefox,Internet Explorer和Google Chrome上的显示方式有所不同

来自分类Dev

我的网站标题在Chrome和Firefox上的显示方式有所不同?

来自分类Dev

情节提要+ UIcollectionView:UI在iOS Simulator和设备上的显示方式有所不同

来自分类Dev

动作栏在android 2.2和android 5.0上的显示方式有所不同

来自分类Dev

Flaticon在本地和实时服务器上呈现的方式有所不同

来自分类Dev

实体框架edmx文件在团队之间的生成方式有所不同

来自分类Dev

Java 8和Java 7处理NumberFormatException的方式是否有所不同?

来自分类Dev

为什么Java正则表达式在Linux和Windows上的行为会有所不同?

来自分类Dev

在Windows和Linux上,PropertiesConfiguration和PropertyResourceBundle的行为有所不同

来自分类Dev

Java泛型对于类和方法的工作方式似乎有所不同

来自分类Dev

Mercurial-未跟踪的文件有所不同

来自分类Dev

sed在FreeBSD和Linux上的行为有所不同吗?

来自分类Dev

Qt GUI在Linux,Mac和Windows上看起来有所不同

来自分类Dev

wc在Unix和Linux上的行为有所不同

来自分类Dev

猫,文件说未找到文件,但nano读取了文件;为什么会有所不同?

来自分类Dev

Windows记事本和记事本++在同一文件中显示换行符的方式有所不同

来自分类Dev

为什么此PNG图像在Chrome和Firefox上呈现的方式有所不同?

来自分类Dev

“冗余代码检测”在受保护或更高范围的属性和字段上的工作方式有所不同

Related 相关文章

  1. 1

    Jar文件在Mac和Linux上的工作原理有所不同

  2. 2

    为什么文件系统在“ df”和“ fstab”中有所不同?

  3. 3

    从文件和管道读取时,Shell程序的行为有所不同

  4. 4

    Java SE 6和Java SE 8 JRE在Windows 7上的行为有所不同(文件权限)

  5. 5

    Chrome和其他操作系统上的“ Open Sans”渲染方式有所不同

  6. 6

    在Mac和Windows上,Python读取tif图像的方式有所不同。为什么?如何?哪个是对的?怎么修?

  7. 7

    linux cksum命令值在不同系统上是否有所不同?

  8. 8

    为什么GradientPaint在MAC OS上的Java 6和Java 7/8中绘制方式有所不同

  9. 9

    我的网站标题在Chrome和Firefox上的显示方式有所不同?

  10. 10

    SVG在Chrome和Firefox上的显示方式有所不同

  11. 11

    文本框在IE和Chrome上的呈现方式有所不同

  12. 12

    网站在Firefox,Internet Explorer和Google Chrome上的显示方式有所不同

  13. 13

    我的网站标题在Chrome和Firefox上的显示方式有所不同?

  14. 14

    情节提要+ UIcollectionView:UI在iOS Simulator和设备上的显示方式有所不同

  15. 15

    动作栏在android 2.2和android 5.0上的显示方式有所不同

  16. 16

    Flaticon在本地和实时服务器上呈现的方式有所不同

  17. 17

    实体框架edmx文件在团队之间的生成方式有所不同

  18. 18

    Java 8和Java 7处理NumberFormatException的方式是否有所不同?

  19. 19

    为什么Java正则表达式在Linux和Windows上的行为会有所不同?

  20. 20

    在Windows和Linux上,PropertiesConfiguration和PropertyResourceBundle的行为有所不同

  21. 21

    Java泛型对于类和方法的工作方式似乎有所不同

  22. 22

    Mercurial-未跟踪的文件有所不同

  23. 23

    sed在FreeBSD和Linux上的行为有所不同吗?

  24. 24

    Qt GUI在Linux,Mac和Windows上看起来有所不同

  25. 25

    wc在Unix和Linux上的行为有所不同

  26. 26

    猫,文件说未找到文件,但nano读取了文件;为什么会有所不同?

  27. 27

    Windows记事本和记事本++在同一文件中显示换行符的方式有所不同

  28. 28

    为什么此PNG图像在Chrome和Firefox上呈现的方式有所不同?

  29. 29

    “冗余代码检测”在受保护或更高范围的属性和字段上的工作方式有所不同

热门标签

归档