我有一些mp3文件的文件名及其标签上带有西里尔字符。
我经常audacious玩它们。请参阅下面的文件信息:

是否可以更改某些编码以正确显示内容?
\n\n\xc3\x82\xc3\xbb\xc3\xb1\xc3\xae\xc3\xaa\xc3\xae应该是\xd0\x92\xd1\x8b\xd1\x81\xd0\xbe\xd0\xba\xd0\xbe, 我猜。
\n我有一个 300 行的文件,文件中的^@每个字符之间都有字符。
(出于安全原因,我无法发布全部内容,所以我只粘贴了第一行)
[mercury@app01 ftp_logs]$ cat cl.txt
2015-01-22 03:00:01; local;
Run Code Online (Sandbox Code Playgroud)
现在,当我vi打开文件时,我看到以下相同的内容:
2^@0^@1^@5^@-^@0^@1^@-^@2^@2^@ ^@0^@3^@:^@0^@0^@:^@0^@1^@;^@ ^@l^@o^@c^@a^@l^@;^@
由于cat不显示^@字符,自然我认为对某个字符串进行 grep 可以在cat.
[mercury@app01 ftp_logs]$ cat cl.txt
2015-01-22 03:00:01; local;
[mercury@app01 ftp_logs]$ cat cl.txt | grep local
[mercury@app01 ftp_logs]$
Run Code Online (Sandbox Code Playgroud)
用 替换空字节后sed,文件现在可以读取vi并grep从 返回结果cat。
[mercury@app01 ftp_logs]$ sed -i 's/\x0//g' cl.txt
[mercury@app01 ftp_logs]$ cat cl.txt | grep local
2015-01-22 03:00:01; local;
[mercury@app01 ftp_logs]
Run Code Online (Sandbox Code Playgroud)
问题:
1) 为什么grep在替换空字节之前不起作用,因为没有显示空字节。这是否意味着即使没有显示在终端中也grep看到了 …
我需要一个 Unix 命令来将 UNICODE 格式的 .csv 文件转换为 ANSI 格式。
该文件是从 Cognos 环境导入的,我无法对 cognos 中的格式进行任何更改。
我尝试转换的 .dsl 格式的字典文件有一些特殊之处。它本质上是一个带有字典对的文本文件。我使用的词典软件是GoldenDict。它需要 UTF-16 字典才能正确呈现。
\n我拥有的所有词典都是 UTF-16LE 格式。然而,有一个很突出。它具有 iso-8859-1 编码。当我用 vim 打开条目时,它看起来像这样:
\nabandonarse\n [m2][c crimson][b]Sin\xc3\xb3nimos[/b][/c][/m]\n [m2][i][c green]verbo[/c][/i][/m]\n [m1][trn][b]desanimarse:[/b] <<desanimarse>>, <<abatirse>>, <<tumbarse>>, <<plegarse>>, <<entregarse>>, <<desligarse>>[/trn][/m]\nRun Code Online (Sandbox Code Playgroud)\n我必须将其转换为 UTF-16LE,因为 Goldendict 呈现一些西里尔字符而不是西班牙重音字符。\n然后我尝试:
\niconv -f iso-8859-1 -t utf-16le dictionary.dsl -o test.dsl\nRun Code Online (Sandbox Code Playgroud)\n新的 test.dsl 字典由 Goldendict 正确呈现,但是我可以看到一些我想摆脱的奇怪的东西。首先,刚刚转换的文件的编码无法被识别,因为它通常与其他字典一样:
\n aleksandr@desktop:~/windoc/Dic/Es extra/dictionary.dsl> file dictionary.dsl\ndictionary: data\nRun Code Online (Sandbox Code Playgroud)\n当我用 vim 打开文件 test.dsl 时,里面的每个字符都添加了 ^@ 。以下是同一条目的示例:
\n ^@<^@<^@e^@n^@t^@r^@e^@g^@a^@r^@s^@e^@>^@>^@,^@ ^@<^@<^@d^@e^@s^@l^@i^@g^@a^@r^@s^@e^@>^@>^@[^@/^@t^@r^@n^@]^@[^@/^@m^@]^@\n^@ ^@[^@m^@2^@]^@[^@c^@ ^@c^@r^@i^@m^@s^@o^@n^@]^@[^@b^@]^@A^@n^@t^@\xc3\xb3^@n^@i^@m^@o^@s^@[^@/^@b^@]^@[^@/^@c^@]^@[^@/^@m^@]^@\n^@ ^@[^@m^@2^@]^@[^@i^@]^@[^@c^@ ^@g^@r^@e^@e^@n^@]^@v^@e^@r^@b^@o^@[^@/^@c^@]^@[^@/^@i^@]^@[^@/^@m^@]^@\nRun Code Online (Sandbox Code Playgroud)\n我尝试在 vim 中删除这个字符
\n%s/<Ctrl-V><Ctrl-J>//g\nRun Code Online (Sandbox Code Playgroud)\n但是,然后我保存文件,它的编码再次为 iso-8859-1。\n我希望显示的文件不带 ^@ 字符,因为我可能需要手动编辑字典中的一些标题。
\n我了解任何字符都由一个或多个字节组成。
如果我没记错的话,至少在 *nix 操作系统中,一个字符通常(或完全?)仅由一个字节组成。
字节和字符(至少 *nixwise)有什么区别?
character-encoding special-characters terminology escape-characters byte
上下文(如果你不在乎,请跳过;如果你怀疑我完全走错了路,请阅读)
\n对于内存较小的嵌入式系统,我想生成仅包含实际需要的字形的字体。因此,在构建时,我需要扫描语言文件,从字符串中提取字符并使用它们的代码作为字体生成工具的参数。
\n包含相关字符串的翻译文件(当然,这只是一个例子,但至少它涵盖了一些 unicode 内容)
\nTEXT_1=Foo\nTEXT_2=Bar\nTEXT_3=Baz\nTEXT_4=\xc3\x9cnic\xc3\xb8d\xc3\xa9\nTEXT_5=\xce\xb5\xce\xbb\xce\xbb\xce\xb7\xce\xbd\xce\xb9\xce\xba\xce\xac\nRun Code Online (Sandbox Code Playgroud)\n预期产出
\n0x42,0x61,0x72,0x42,0x61,0x7A,0x46,0x6F,0x6F,0xDC,0x6E,0x69,0x63,0xF8,0x64,0xE9,0x3B5,0x3BB,0x3BB,0x3B7,0x3BD,0x3B9,0x3BA,0x3AC\nRun Code Online (Sandbox Code Playgroud)\n到目前为止我的方法
\n该脚本只是执行我所描述的操作:sed读取文件,提取字符串,并准备将其格式化printf,sort -u删除重复项:
for char in $(sed "s/[^=]*=//;s/./'& /g" myLang.translation|sort -u); do\n printf "0x%02X\\n" $char\ndone\nRun Code Online (Sandbox Code Playgroud)\n这适用于这个例子,但感觉丑陋、不可靠、错误,对于真实文件来说可能很慢,所以你能说出一个更好的工具、更好的方法、更好的东西吗?
\ncharacter-encoding shell-script text-processing sort unicode
我有一个需要解析的 XML 文件。当我在 nano 中打开它时, nano 给我消息(converted from Mac format)。然而,在每个字符之间,有一个^@序列,如下所示:
^@t^@h^@e^@ ^@q^@u^@i^@c^@k^@ ...
Run Code Online (Sandbox Code Playgroud)
这是什么格式,如何才能正确显示?我如何转换它?
当我尝试在 zsh 中运行以下脚本时,通过命令/bin/zsh ~/.set_color_scheme.sh我收到以下错误:
command not found: ^M
Run Code Online (Sandbox Code Playgroud)
该脚本具有u+x权限,它曾经在另一台也有 zsh 的机器上工作。任何线索为什么?
注意:这个问题与另一个问题有关(我正在尝试为 调整脚本tcsh)
#!/bin/zsh
# Contents of set_color_scheme.sh
export LS_COLORS=$( \
( grep '\w' | grep -v '^#' | sed 's/#.\+//' | perl -lane 'printf "%s=%s:", shift @F, join ";", @F;' ) <<< "
# HUMAN_FORMATTED_DATA
# list one per line
# these are basic filesystem items
no 00 # normal
fi 00 # file
di 01 34 # directory
ln …Run Code Online (Sandbox Code Playgroud) 我目前正在摆弄一个垂死的硬盘,在尝试从中获取cp数据时,我收到了类似的错误
cp: error reading ‘brokenFile’: Input/output error
# comparison: backtick: `, apostrophe '
Run Code Online (Sandbox Code Playgroud)
我现在尝试通过使用sed将错误消息转换为新cp调用来再次复制失败的文件(我已经成功了几次)。但是:什么是有趣的引号?它们甚至在开始/结束时都不同。它没有反引号,也没有撇号。我将它复制/粘贴到我的正则表达式中,但有更好的方法吗?也许使用撰写?
我已将 Apache 从 2.2 升级到 2.4,但遇到字符编码问题。在我的页面中,我有è=è ò=ò ì=ì等...
在我的httpd.conf我已经评论了默认值并添加了ISO-8859-1(西欧)
#AddDefaultCharset UTF-8
AddDefaultCharset ISO-8859-1
Run Code Online (Sandbox Code Playgroud)
但这并没有改变任何事情。
shell-script ×2
unicode ×2
apache-httpd ×1
audacious ×1
byte ×1
cat ×1
command ×1
conversion ×1
dictionary ×1
grep ×1
newlines ×1
shell ×1
sort ×1
tagging ×1
terminology ×1
vim ×1
zsh ×1