Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 替换Â;文件中有空格_Unix_Sed_Character Encoding - Fatal编程技术网

Unix 替换Â;文件中有空格

Unix 替换Â;文件中有空格,unix,sed,character-encoding,Unix,Sed,Character Encoding,在我的文件中,不知何故,添加了。我不确定它是什么,以及它是如何被添加的 12345A 210 CBCDEM 我想从文件中删除此字符。我尝试使用基本sed命令将其删除,但未成功 sed -i -e 's/\Â//g' 我还读到,dos2unix将完成这项工作,但不幸的是,这项工作也不起作用。假设它是十六进制字符,我还尝试使用hex-valuesed-I的/\xc2//g'删除它,但这也不起作用 我真的很想了解这个角色是什么,以及它是如何被添加的。此外,是否有可能删除文件中的所有此类字符

在我的文件中,不知何故,添加了。我不确定它是什么,以及它是如何被添加的

12345A 210 CBCDEM
我想从文件中删除此字符。我尝试使用基本sed命令将其删除,但未成功

  sed -i -e 's/\Â//g'
我还读到,
dos2unix
将完成这项工作,但不幸的是,这项工作也不起作用。假设它是十六进制字符,我还尝试使用hex-value
sed-I的/\xc2//g'
删除它,但这也不起作用

我真的很想了解这个角色是什么,以及它是如何被添加的。此外,是否有可能删除文件中的所有此类字符

正在添加编码详细信息:——

操作系统详细信息:——


注意。

似乎在写入文件的程序(在的某些部分)和读取文件的程序(假设是)之间存在编码不匹配。这是一个教科书上的用例。事实上,手册页中的示例几乎完全适用于您的案例:

iconv -f iso-8859-1 -t utf-8 test.txt
iconv
是我见过的几乎所有Unix发行版上的一个程序,因此您在这里应该没有任何问题

基于你似乎以英语为主要语言写作的事实,你可能正在寻找,这显然是相当流行的

如果这不能解决您的问题,您可能需要为数据库的输出找到正确的编码。你能行

iconv -l
要获取可用于
iconv
的编码列表,请使用适合您的编码。请记住,
文件
的输出不是绝对的。在许多情况下,无法区分纯ASCII和UTF-8。如果我没有弄错的话,
文件
使用基于文件中字符代码频率的启发式方法来确定编码。如果样本太小和/或模棱两可,很容易出错

如果要保存
iconv
的输出,并且您的版本支持
-o
标志,可以使用它。否则,请使用重定向,但要小心:

TMP=$(mktemp)
iconv -f iso-8859-1 -t utf-8 test.txt > "$TMP" && mv "$TMP" test.txt

似乎在写入文件的程序(在的某些部分)和读取文件的程序(假设是)之间存在编码不匹配。这是一个教科书上的用例。事实上,手册页中的示例几乎完全适用于您的案例:

iconv -f iso-8859-1 -t utf-8 test.txt
iconv
是我见过的几乎所有Unix发行版上的一个程序,因此您在这里应该没有任何问题

基于你似乎以英语为主要语言写作的事实,你可能正在寻找,这显然是相当流行的

如果这不能解决您的问题,您可能需要为数据库的输出找到正确的编码。你能行

iconv -l
要获取可用于
iconv
的编码列表,请使用适合您的编码。请记住,
文件
的输出不是绝对的。在许多情况下,无法区分纯ASCII和UTF-8。如果我没有弄错的话,
文件
使用基于文件中字符代码频率的启发式方法来确定编码。如果样本太小和/或模棱两可,很容易出错

如果要保存
iconv
的输出,并且您的版本支持
-o
标志,可以使用它。否则,请使用重定向,但要小心:

TMP=$(mktemp)
iconv -f iso-8859-1 -t utf-8 test.txt > "$TMP" && mv "$TMP" test.txt

文件是如何创建的?该文件是作为导出从Mongo创建的。Mongo没有这样的角色。当然。你能检查一下你的系统使用的编码和数据库使用的编码吗?这应该很有用,我想试着运行
文件
,并将结果包含在你的问题中。类似于
od-c | head
的东西也可能有用。我们需要更多信息。文件是如何创建的?该文件是作为从Mongo导出创建的。Mongo没有这样的角色。当然。你能检查一下你的系统使用的编码和数据库使用的编码吗?这应该很有用,我想试着运行
文件
,并将结果包含在你的问题中。类似于
od-c | head
的东西也可能有用。我们需要更多信息。它不断给出错误iconv:“ISO-8859”的转换不正确supported@user2854333. 请尝试
iso8859
。你到底在用什么操作系统?请将其编辑到问题中。iso8859也不起作用。我使用了iconv-l来获取支持的转换格式,但似乎iso-8859不存在。我们需要iso-8859-1或类似的格式。我尝试过,但字符仍然存在,尽管编码已更改。@user2854333。“不幸的是,它没有帮助”不是一个很有帮助的评论。我在关于问题本身的评论中多次要求提供补充信息,但你完全忽视了这一点。如果没有这些信息,我真的帮不了你,所以在你提供之前,我已经添加了我的投票结果。它不断给出错误iconv:“ISO-8859”的转换不正确supported@user2854333. 请尝试
iso8859
。你到底在用什么操作系统?请将其编辑到问题中。iso8859也不起作用。我使用了iconv-l来获取支持的转换格式,但似乎iso-8859不存在。我们需要iso-8859-1或类似的格式。我尝试过,但字符仍然存在,尽管编码已更改。@user2854333。“不幸的是,它没有帮助”不是一个很有帮助的评论。我在关于问题本身的评论中多次要求提供补充信息,但你完全忽视了这一点。如果没有这些信息,我真的帮不了你,所以在你提供这些信息之前,我已经投了我的赞成票。