我使用这个命令:PowerShell的输出格式不正确的文件名
Get-ChildItem | Foreach-Object {$_.BaseName} > file_names.txt
打印在我的当前目录中的文件名文件(没有最终扩展)。在记事本中打开文件名显示正确打印的文件名。很简单,是的。凉。
我的问题是,在用Java中的BufferedReader读取文件名时,文件名会变得格格不入。例如,
20100916_090350_S1_1_auto获得test_1.Rad出来作为
ÿþ20 1 0 0 9 1 6 _ S 1 _ 1 _ U字吨Ôg的I N T E式T _ 1。 R A d
(在.Rad扩展应该在那里,有后,另一部分,我想删除)
我认为这是某种类型的编码问题愚蠢的窗口。不幸的是,我对这些事情一无所知。任何帮助,将不胜感激。
感谢
真棒,它的工作!所以我发现前段时间需要摆脱物料清单,但最后一个半小时没有做到这一点。我没有指定任何编码,所以我认为它使用的是默认值。为什么告诉它使用默认的编码,当它没有这样做之前呢? –
那么,'>'语法只是'|的语法糖。 Out-File“,根据[文档](http://technet.microsoft.com/en-us/library/hh849882.aspx),Out-File的默认编码是Unicode。例如,在波兰语中,“默认”是代码页1250,“OEM”是旧DOS代码页852.我不建议深入研究OEM/ANSI编码的怪癖,只是尝试使用Unicode或UTF-8尽可能提供与现代国际意识环境的兼容性。 – Endrju
我明白,我感到困惑的是,我最初并未指定将其编码为什么。这些文件最终编码为Big-Endian(不管那是什么),所以我认为这是默认的;这就是为什么我不打扰尝试默认编码。当我尝试使用UTF-8编码时,我只能使用BOM获取编码。我只是好奇它为什么没有默认为“默认”设置。另外,谢谢。 –