Questions tagged «character-encoding»

处理字符和字符集的各种表示形式的问题,例如:ASCII,UTF-8,EBCDIC等。在操作系统之间移动文件时经常会遇到这种情况,这些文件使用回车符和/或换行符对换行进行编码。

4
如何将使用CRLF行终止符的非ISO扩展ASCII文本的编码更改为UTF-8?
我有一个txt文件: $ file -i x.txt x.txt: text/plain; charset=unknown-8bit $ file x.txt x.txt: Non-ISO extended-ASCII text, with CRLF line terminators 并且有些字符编码不正确: trwa³y, sta³y, usuwaæ 如何将该文件的编码更改为UTF-8?到目前为止,我已经尝试了以下方法: $ iconv -f ASCII -t UTF-8 x.txt puiconv: illegal input sequence at position 4 也许我应该以某种方式使用extended ASCII(high ASCII),但无法在iconv的编码列表中找到它。

4
使用特殊字符批量重命名(或正确显示)文件
我有一堆目录和子目录,其中包含带有特殊字符的文件,例如以下文件: robbie@phil:~$ ls test�sktest.txt test?sktest.txt 查找揭示了一个转义序列: robbie@phil:~$ find test�sktest.txt -ls 424512 4000 -rwxr--r-x 1 robbie robbie 4091743 Jan 26 00:34 test\323sktest.txt 我什至可以在控制台上键入其名称的唯一原因是由于制表符的完成。这也意味着我可以手动重命名它们(并去除特殊字符)。 我已将LC_ALL设置为UTF-8,这似乎无济于事(也不在新的shell上): robbie@phil:~$ echo $LC_ALL en_US.UTF-8 我正在使用Mac上的ssh连接到计算机。这是Ubuntu安装: robbie@phil:~$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=7.10 DISTRIB_CODENAME=gutsy DISTRIB_DESCRIPTION="Ubuntu 7.10" Shell是Bash,TERM设置为xterm-color。 这些文件已经存在了很长一段时间,并且尚未使用该Ubuntu版本创建。因此,我不知道以前的系统编码设置是什么。 我已经尝试过以下方法: find . -type f -ls | sed 's/[^a-zA-Z0-9]//g' 但是我找不到能满足我所有需求的解决方案: 识别所有具有不可显示字符的文件(以上内容忽略太多) 对于目录树中的所有那些文件(递归),请执行mv …

2
使用pandoc将.docx转换为.pdf
我正在尝试通过使用pandoc将邮件接收的.docx转换为正确的pdf(我正在使用GNU / Linux)。 我有一个关于字符编码的错误: $ pandoc file.docx -o file.pdf pandoc: Cannot decode byte '\x87': Data.Text.Encoding.decodeUtf8: Invalid UTF-8 stream 我试图识别编码: $ file -i file .docx file.docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=binary 我有点惊讶charset=binary(我原以为是charset=iso8859-15)。但是我还是试图将.docx转换为utf8,但它不起作用: $ iconv -t utf-8 file.docx P! $iconv: séquence d'échappement non permise à la position 16 我在pandoc文档的命令行中有相同的错误: iconv -t utf-8 file.docx | pandoc …

2
在当前语言环境中检索给定字符类中的字符列表的命令
有什么能检索在给定的人物类中的所有字符(如列表的方式blank,alpha,digit...)在当前的语言环境。 例如, LC_ALL=en_GB.UTF-8 that-command blank 理想情况下,在我的Debian系统上,将显示以下内容: 09 U+0009 HORIZONTAL TAB 20 U+0020 SPACE e1 9a 80 U+1680 OGHAM SPACE MARK e1 a0 8e U+180E MONGOLIAN VOWEL SEPARATOR e2 80 80 U+2000 EN QUAD e2 80 81 U+2001 EM QUAD e2 80 82 U+2002 EN SPACE e2 80 83 U+2003 EM …

3
更多,猫和更少支持的字符编码
我有一个根据以下方式编码的文本文件file: ISO-8859文字,带有CRLF线路终止符 此文件包含带有重音的法语文本。我的外壳程序能够显示重音,并且emacs在控制台模式下能够正确显示这些重音。 我的问题是more,cat和less工具不正确显示此文件。我猜这意味着这些工具不支持此字符编码集。这是真的?这些工具支持哪些字符编码?

6
如何正确解压缩具有希伯来语名称的文件的ZIP存档?
有人给我发送了一个ZIP文件,其中包含带有希伯来语名称的文件(并在Windows上创建,不确定使用哪种工具)。我在Debian Stretch上使用LXDE。Gnome存档管理器设法将文件解压缩,但是希伯来语字符显示为乱码。我想我正在将UTF-8八位字节扩展为Unicode字符,例如,我有一个文件,该文件的名称包含四个字符和一个.doc足够的字符,这些字符是:0x008E 0x0087 0x008E 0x0085。使用命令行解压缩实用程序甚至更糟-它拒绝完全解压缩,并抱怨“无效或不完整的多字节或宽字符”。 因此,我的问题是: 是否有另一个解压缩实用程序将使用正确的名称解压缩我的文件? 压缩文件的方式是否存在问题,或者仅仅是ZIP实现的不兼容?甚至是Linux ZIP实用程序的功能/错误? 使用乱码解压缩后,如何获取正确的文件名?

1
SSH中不会显示外来字符
我在使用ssh和远程服务器(我没有管理员访问权限)时遇到一些问题-具体来说,那里有几个带有韩文和西里尔文字的文件夹。 当我使用来显示父文件夹的内容时ls,字符被转义为“?”。也许值得注意的是,韩文字符的转义字符似乎比应该出现的字符数多得多。 我知道我正在使用的终端程序可以显示字符,因为使用sftp它们可以完美显示它们。我尝试过的所有终端都出现了问题。 机器概要 本地机器: Linux 2.6.32-5-686,i686 Debian GNU / Linux 6.0.2(压缩) 拥有管理员权限 远程服务器: Linux 2.6.32-bpo.5-amd64,x86_64 Debian GNU / Linux 5.0.8(Lenny) 没有管理员权限,也没有物理权限 我可能已经错过了一些其他重要统计信息或一些信息,在这种情况下,我深表歉意。我对整个非Windows计算方面还很陌生,所以我几乎不知道我在这里做什么。

3
如何将U + xxxxx代码指定的表情转换为utf-8?
表情符号似乎是使用U + xxxxx的格式指定的, 其中每个x是一个十六进制数字。 例如,U + 1F615是“困惑的面孔” 的正式Unicode联盟代码code 由于我经常感到困惑,所以我对这个符号有很强的亲和力。 该U + 1F615表示是混淆我,因为我认为有可能为Unicode字符的唯一编码所需的8,16,24或32位,而5个十六进制数字需要5×4 = 20比特。 我发现这个符号似乎由bash中完全不同的十六进制字符串表示: $echo -n 😕 | hexdump 0000000 f0 9f 98 95 0000004 $echo -e "\xf0\x9f\x98\x95" 😕 $PS1=$'\xf0\x9f\x98\x95 >' 😕 > 我本来希望U + 1F615转换为\ x00 \ x01 \ xF6 \ x15之类的东西。 我看不到这两种编码之间的关系吗? 当我在正式的Unicode联盟列表中查找符号时,我希望能够直接使用该代码,而不必以这种乏味的方式手动将其转换。即 在某些网页上找到符号 将其复制到Web浏览器的剪贴板 将其粘贴到bash中以通过十六进制转储进行回显以发现REAL代码。 我可以使用此20位代码来确定32位代码是什么吗? …

2
ssh和字符编码
当我ssh进入VPS时,我已经irssi在屏幕上运行了。当有人发送Unicode字符(例如©或€)时,irssi当我在ssh会话中通过屏幕使用Unicode字符时会显示垃圾。如果irssi使用irssi的代理模块连接到本地计算机上运行的irssi,它将正确显示。 同样,如果我在VPS(屏幕外)上运行ghci并输入其中一个字符,则会崩溃。 因此,很明显,在ssh或系统设置程序中,我与VPS的连接存在某种字符编码问题。 我如何找出造成这种情况的原因并加以解决? 细节: 客户系统 Arch Linux x64 UTF-8编码 VPS系统 Ubuntu服务器10.04 使用了未知的编码。我怎么找到这个?(我只需要查看我的/etc/rc.conf中的Arch)

3
不能在UTF-8中使用`cut -c`(`--characters`)吗?
该命令cut具有一个-c处理字符的选项,而不是带有选项的字节-b。但这似乎在en_US.UTF-8区域设置中不起作用: 第二个字节给出第二个ASCII字符(在UTF-8中编码相同): $ printf 'ABC' | cut -b 2 B 但不会在UTF-8语言环境中给出三个希腊非ASCII字符中的第二个: $ printf 'αβγ' | cut -b 2 � 没关系-这是第二个字节。 因此,我们改为看第二个字符: $ printf 'αβγ' | cut -c 2 � 看起来坏了。 通过一些实验,结果表明范围3-4显示了第二个字符: $ printf 'αβγ' | cut -c 3-4 β 但这与字节3到4相同: $ printf 'αβγ' | cut -b 3-4 β 因此,对于UTF-8,-c最多不会超过-b。 我希望语言环境设置不适用于UTF-8,但是相比之下,它wc可以按预期工作; …

3
将十进制打印为ASCII字符,我的命令未按预期输出
我想使用以下命令输出所有ascii字符的字符串 for i in `seq 32 127`; do printf "%c" $i; done 上面命令的输出是: 33333334444444444555555555566666666667777777777.............. 它是每个数字的第一个(从左到右)数字。 通过这个站点,我遇到了问题的答案如何在CLI中打印所有可打印的ASCII字符?,但是我仍然不明白为什么我的原始代码片段没有按预期输出ascii字符。

2
iconv非法输入序列-为什么?
尝试将文本文件转换为等效的ASCII文件时,出现错误消息that iconv: illegal input sequence at position。 我使用的命令是 iconv -f UTF-8 -t ascii//TRANSLIT file 令人反感的角色是æ。 文本文件本身位于此处。 为什么说非法顺序?输入的字符是正确的UTF-8字符(U + 00E6)。


2
Wget返回二进制而不是HTML?
我正在使用wget下载静态html页面。W3C验证程序告诉我该页面以UTF-8编码。然而,当我下载完文件后,我得到了一堆二进制废话。我在Ubuntu上,我认为默认编码为UTF-8?这就是我的语言环境文件所说的。为什么会发生这种情况,我该如何纠正? 另外,看起来像Content-Encoding: gzip。也许这有所不同? 这是简单的请求: wget https://www.example.com/page.html 我也尝试过这个: wget https://www.example.com/page.html -q -O - | iconv -f utf-16 -t utf-8 > output.html 哪个返回: iconv: illegal input sequence at position 40 处理文件将返回类似于以下内容的二进制文件: l�?חu�`�q"�:)s��dġ__��~i��6n)T�$H�#���QJ 结果xxd output.html | head -20: 00000000: 1f8b 0800 0000 0000 0003 bd56 518f db44 ...........VQ..D 00000010: 107e a6bf 62d4 8a1e …

5
如何在Firefox中将备用编码设置为UTF-8?
我写了一份挪威降价文件: $ file brukerveiledning.md brukerveiledning.md: UTF-8 Unicode text 我已经使用markdown命令将其转换为HTML : $ markdown > brukerveiledning.html < brukerveiledning.md $ file brukerveiledning.html brukerveiledning.html: UTF-8 Unicode text 但是,Firefox坚持使用“ windows-1252”编码,以打破非ASCII字符。我尝试将后备文本编码从“默认为当前区域设置”(在英国此处应为ISO-8859-1或UTF-8)更改为“中欧,ISO”,“中欧,微软” ”和“其他(包括西欧)”。这些都不能显示æ,ø和å。没有Unicode选项。我也试图改变intl.fallbackCharsetList.ISO-8859-1在about:config中各种价值观喜欢utf8,utf-8,iso-8859-1,没有运气。 使用此markdown软件包: $ pacman --query --owns "$(which markdown)" /usr/bin/markdown is owned by markdown 1.0.1-6 和这个地区: $ locale LANG=en_GB.utf8 LC_CTYPE="en_GB.utf8" LC_NUMERIC="en_GB.utf8" LC_TIME="en_GB.utf8" LC_COLLATE="en_GB.utf8" LC_MONETARY="en_GB.utf8" LC_MESSAGES="en_GB.utf8" LC_PAPER="en_GB.utf8" …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.