相关疑难解决方法(0)

从powershell调用时,Iconv正在转换为UTF-16而不是UTF-8

尝试使用powershell脚本中的iconv将某些文件的编码从ISO-8859-1批量转换为UTF-8时出现问题.

我有这个bat文件,工作正常:

for %%f in (*.txt) do (
  echo %%f
  C:\"Program Files"\GnuWin32\bin\iconv.exe -f iso-8859-1 -t utf-8 %%f > %%f.UTF_8_MSDOS 
)
Run Code Online (Sandbox Code Playgroud)

我需要转换目录结构上的所有文件,所以我编写了这个其他脚本,这次使用powershell:

Get-ChildItem -Recurse -Include *.java |
  ForEach-Object {
    $inFileName = $_.DirectoryName + '\' + $_.name
    $outFileName = $inFileName + "_UTF_8"
    Write-Host Convirtiendo $inFileName -> $outFileName  
    C:\"Program Files"\GnuWin32\bin\iconv.exe -f iso-8859-1 -t utf-8 $inFileName > $outFileName
  }
Run Code Online (Sandbox Code Playgroud)

使用此结果是将文件转换为UTF-16.我不知道我做错了什么.

任何人都可以帮我这个吗?对于PowerShell本身的编码可能是某种问题吗?

我正在使用W7和WXP以及LibIconv 1.9.2

powershell encoding utf iconv

4
推荐指数
1
解决办法
2994
查看次数

如何将文件从ASCII转换为UTF-8?

我正在尝试将一堆文件从ASCII转码为UTF-8.

为此,我尝试使用iconv:

iconv -f US-ASCII -t UTF-8 infile > outfile
Run Code Online (Sandbox Code Playgroud)

-f ENCODING 输入的编码

-t ENCODING 输出的编码

该文件仍未转换为UTF-8.它是一个.dat文件.

在发布之前,我搜索了Google并找到了以下信息:

ASCII是UTF-8的子集,因此所有ASCII文件都已经过UTF-8编码.ASCII文件中的字节和"将其编码为UTF-8"所产生的字节将完全相同.它们之间没有区别.

强制编码从US-ASCII到UTF-8(iconv)

在字符集之间转换文本文件的最佳方法?

上述链接仍无济于事.

即使它是ASCII格式,它也支持UTF-8,因为UTF-8是一个超级集合,另一方要接收我的文件需要文件编码为UTF-8.他只需要文件格式为UTF-8.

请给我任何建议.

unix linux encoding ascii utf-8

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

encoding ×2

ascii ×1

iconv ×1

linux ×1

powershell ×1

unix ×1

utf ×1

utf-8 ×1