我在Power
shell中生成带有EXPORT-CSV的CSV,然后将其提供给Perl脚本.但Perl无法导入该文件.
我已经针对工作版本(已经从相同的Perl脚本而不是PowerShell导出)验证了CSV文件,并且没有区别. coloumns完全相同,它们都有分号作为分隔符.如果我在Excel中打开文件,但所有内容都会在每行的第一个单元格中结束(这意味着我必须进行文本到颜色).工作文件从一开始就在不同的单元格中结束.
更令人困惑的是:当我在记事本中打开文件并将内容复制/粘贴到新文件时,导入工作正常!
那么,我错过了什么?是否有“隐藏”属性,我无法用记事本发现?我是否必须更改编码类型?
请帮忙:)
解决方法
要更好地查看CSV文件,请尝试使用
Notepad++.这将告诉您状态栏中的文件编码.同时打开隐藏的字符(查看>显示符号>显示所有字符).这将显示是否只有换行符,或回车换行符,制表符与空格等…您还可以从“编码”菜单更改文件编码.这可以帮助您识别差异.记事本不显示任何此类信息.
更新 – 以下是如何在代码中将文本文件从Windows转换为Unix格式:
$allText = [IO.File]::ReadAllText("C:\test.csv") -replace "`r`n?","`n" $encoding = New-Object System.Text.ASCIIEncoding [IO.File]::WriteAllText("C:\test2.csv",$allText,$encoding)
或者您可以使用记事本(编辑> EOL转换> Unix格式).