Bash 使用iconv解码包含希伯来语字符和德语eszett的文件

Bash 使用iconv解码包含希伯来语字符和德语eszett的文件,bash,encoding,utf-8,Bash,Encoding,Utf 8,我有一个文件,我很确定它的编码很奇怪。我之前已经成功地将类似的文件转换为utf-8,方法是假设它们是在windows-1255中使用iconv(iconv-f windows-1255-t utf-8$file)进行编码的,这已经成功地工作了 我的当前文件包含一个ß字符,这让我很不舒服——当它碰到这个字符时,iconv会断开(出现“非法输入序列”错误)。我应该使用另一种编码吗?(=希伯来语)不知道,因此ICONV的行为正确。知道代码点上该字符的其他旧代码页00DF: =拉丁语2/中欧语 =拉丁

我有一个文件,我很确定它的编码很奇怪。我之前已经成功地将类似的文件转换为utf-8,方法是假设它们是在windows-1255中使用iconv(
iconv-f windows-1255-t utf-8$file
)进行编码的,这已经成功地工作了

我的当前文件包含一个ß字符,这让我很不舒服——当它碰到这个字符时,iconv会断开(出现“非法输入序列”错误)。我应该使用另一种编码吗?

(=希伯来语)不知道,因此ICONV的行为正确。知道代码点上该字符的其他旧代码页
00DF

  • =拉丁语2/中欧语
  • =拉丁语1/西欧
  • =土耳其语
  • =波罗的海
  • =越南语

只有文档所有者知道哪个代码页是正确的。如果它是其中一个。

iconv-f ISO-8859-15-t utf-8$file
?第一步是找出文件使用的是什么编码,而不是猜测。如果你不知道它是什么编码,你怎么知道它包含“ß”?iconv在一行中间断开,如果我提取该行并使用不同的原始编码,我可以看到“ß”在那里。从上下文来看也很明显(出现在德语单词中).iso-8859-15不再破坏iconv,但如果我使用它,希伯来文字符将无法正确呈现。谢谢!通过进一步的调查/讨论,原始文件似乎是windows-1255(某些行)和windows-1252(其他行)的一些损坏组合,很遗憾。我认为最好的解决方案是将一些处理此问题的东西组合在一起...