Questions tagged «character-encoding»

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

3
调整LANG无效时,如何在Wine应用程序中修复俄语字母?
具有俄语UI的应用程序会显示问号,而不是其大部分文本(尽管某些元素可以正常显示)。 系统语言环境为英语(en_US,en_IE),我已经尝试过将Wine 1.5与Ubuntu ant XUbuntu 12.04结合使用。 我试图用启动应用程序 LANG=ru_RU.utf8 wine myapp.exe 但这没有帮助。 我还检查了ttf-mscorefonts-installer已安装。 如果使用Windows,则在“控制面板”中为非Unicode应用设置俄语代码页即可解决此问题。 有任何想法吗?

2
关于Linux上文件系统字符编码的几个问题
由于Windows(GBK编码)和Linux(UTF-8编码)之间有很多文件交换工作,因此它很容易遇到字符编码问题,例如: 在Windows系统上其名称包含中文字符的zip / tar文件,在Linux系统上将其解压缩/取消存储。 运行迁移的旧版Java Web应用程序(在Windows系统上设计,使用JSP中的GBK编码),该应用程序将以GBK编码的文件写入磁盘。 ftp在Windows FTP服务器和Linux客户端之间获取/输入以GBK编码的文件。 在Linux中切换LANG环境。 前面提到的常见问题是文件定位/命名。谷歌搜索后,我收到了一篇文章《在Linux中使用Unicode》 http://www.linux.com/archive/feed/39912,它说: 操作系统和许多实用程序都没有意识到文件名中的字节代表什么字符。 因此,可能会有2个使用不同编码的English.txt文件: [root@fedora test]# ls ???? 中文 [root@fedora test]# ls | iconv -f GBK 中文 涓iconv: illegal input sequence at position 7 [root@fedora test]# ls 中文 && ls $'\xd6\xd0\xce\xc4'|iconv -f gbk 中文 中文 问题: 是否可以配置linux文件系统使用固定字符编码(例如NTFS内部使用UTF-16)来存储文件名,而不管LANG / LC_ALL环境如何? 或者,我真正想问的是:是否可以让$'\xe4\xb8\xad\xe6\x96\x87.txt'zh_CN.UTF-8环境中的文件名中文.txt($'\xd6\xd0\xce\xc4.txt')和zh_CN.GBK环境中的文件名中文.txt()引用同一文件? 如果它不是可配置的,那么是否有可能修补内核以在文件系统和当前环境之间转换字符编码(只是一个问题,不是请求实现)?并在可能的情况下影响多少性能?

2
为什么wc -m和wc -c不同?
作为一名C程序员,我很惊讶地发现wc -c(它计算字节数)和wc -m(它计算字符数)对于我的一个长文本文件输出的结果截然不同。我一直被告知那sizeof(char)是1个字节。 qdii@nomada ~/Documents $ wc -c sentences.csv 102990983 sentences.csv qdii@nomada ~/Documents $ wc -m sentences.csv 89023123 sentences.csv 有什么解释吗?

2
posix支持哪些字符编码?
POSIX定义的工具,如行为grep,awk,sed,等这些工作对文本文件。由于它是文本文件,因此我认为存在字符编码的问题。 题: POSIX支持什么字符编码?(或者,POSIX兼容系统可以处理哪种编码的文本文件?)

4
支持使用lpr进行utf-8编码
尝试通过lprfrom 将文本文件发送到打印机时xterm,内容被破坏,无法识别,其原因最终被追溯到文件的编码。如果我改用iconv(例如iconv -f utf-8 -t ascii//TRANSLIT)处理文本,则文件将正常打印。我遇到的另一个建议是设置文档格式(例如lpr -o document-format=text/utf8),但这会返回错误lpr: Unsupported document-format "text/utf8"。我总是可以给lpr命令加上别名,以包括处理iconv,但是在CUPS/ lpr系统中是否有更通用的本机utf-8支持? 编辑:我的操作系统是Debian 8,我的窗口管理器是openbox(没有桌面环境)。我可以从MacOS X以及Debian7 / Gnome3系统毫无问题地打印该文件。 从我当前的系统中,我应该指出,即使将字符编码从UTF-8更改为ASCII,换行符也不会受到的尊重lpr,因此,这些行将连接在一起并打印直到达到页边距。在iconvMacOS X上进行重新编码和音译后,打印仍然可以正常工作(因此换行问题也特定于我当前的系统)。

2
终端:显示特殊字符
在某些程序中,例如htop线条和框架显示不正确。而是将它们显示为-和/。 但是在另一台计算机上,它们正确显示为正确的行: 我不确定这是否是终端问题,或者是否需要某些软件包。 如果相关:我的系统是Debian Wheezy,我的解释器是bash,我的终端模拟器是gnome-terminal

3
$ LANG对终端的影响
我正在尝试了解该$LANG变量在gnome-terminal(及其字符编码首选项)中的行为。我一直在使用iso8859-1(latin1)作为我的主要字符集,并且我所有的文件名都这样编码。 对于以下测试,我将对ls -l文件名中带有西班牙语重音符号的目录执行以下操作: 情况1: 为ISO-8859-1配置的gnome终端 LANG 设置为“ en_US-iso8859-1” 结果:我可以正确看到所有文件 情况2: 为UTF-8配置的gnome终端 LANG 设置为“ en_US-iso8859-1” 结果:我看到了所有西班牙语字符的乱码。这是预期的,因为我更改了终端的字符编码 情况3: 为ISO-8859-1配置的gnome终端 LANG 设置为“ en_US-UTF-8” 结果:我看到了所有西班牙语字符的乱码。 为什么在最后一种情况下我看到乱码?ls的输出不应该直接将文件名直接发送到gnome-terminal吗?而且,由于gnome-terminal是为ISO-8859-1配置的,所以我希望它们看起来正确。 有一阵子我以为,也许bash正在考虑我的$LANG变量并执行一些转换。然后我将终端切换为UTF-8,但仍然看不到正确的字符。我什至将ls的输出通过管道传输到xxd,令我惊讶的是,我仍然看到文件编码为:ISO-8859-1。 总结:如果我的清单包含ISO-8859-1字符,并且我的终端仿真器配置了相同的字符编码:LANG否则设置时谁在进行转换? 感谢您的任何帮助,您可以提供。 克拉科尼亚

1
为什么我的文件名在Linux中看起来是“普通”的,而在Windows中却不是远程的?
与同事一起工作时,我发现了一个奇怪的问题,似乎与编码有关。我们正在与具有足够简单的文件名,如一些图像时city.gif或wine.gif,但正如人们所预料的事情开始使用特殊字符,例如当更多复杂的é,ë,à。我们还正在处理具有这些字符的荷兰数据,例如café(pub)。(我们无法控制文件的来源。)这是开始出现问题的地方。以下文件名仅是示例。带有变音符号的其他字符也会出现此问题。 café-2.png cafetaria.png café.png 第一项和最后一项应在其中带有重音符号e(重音aigu,é)。这样便可以在Linux(CentOS 6和7)的终端上运行它ls。但是Windows来了!(使用Windows 10,64位。)在Windows上通过SSL与我们的服务器通过SSL连接,然后调用时ls,上面的列表如下所示: café-2.png cafetaria.png caf▒.png 如您所愿,第一行仍带有重音符号e é,而第三行则没有。相反,我看到了▒这个字符-它是medium shadeunicode(十进制数为1818)。这本身很奇怪。但是,当我通过SFTP和Filezilla(仍在Windows上)连接时,会看到以下内容: café-2.png cafetaria.png café.png 因此,现在情况有所好转:在第一个中,é已更改为顺序,在第三个中,一切都很好。我在这里发现,这很可能是由于Latin-1 <-> UTF-8转换出错(如果我正确的话)。但这不可能是所有发生的事情,对吧? Linux显示了我们所期望的一切,Windows显示了似乎不一致的行为,具体取决于我们查看文件名的方式(SSH(putty)或SFTP(filezilla))。有没有一种方法可以“标准化”这些文件名(即编辑它们),并确保每个操作系统上的文件名都相同;或至少是一致的,如果是的话,如何?UTF-8是我们选择的编码。 即使这可能只是一个美学问题,但事实并非如此。尝试从Linux服务器通过Windows中的SFTP下载内容时,我无法下载出现上述问题的文件。Filezilla将抛出诸如的错误Can't download file café-2.png: café-2.png does not exist on the server。在我看来,Filezilla会读取目录和文件名,以某种编码对其进行解释,然后将GET请求及其解释发送给服务器,但是该解释与Linux文件名不同,因此找不到该文件。 最终,如果有解决方案,那将是很好的,尽管我也对为什么会发生这种情况感兴趣。是否因为映像文件可能是在不同的操作系统上创建而发生的?是因为Linux服务器将其解释为错误而发生,还是Windows混乱了?希望有一种解决方案,我们可以联系我们的系统管理员,要求他们打开服务器配置中的开关,但恐怕并非如此简单。

2
使用libreoffice --convert-to csv指定编码
可以使用以下方法将Excel文件转换为CSV: $ libreoffice --convert-to csv --headless --outdir dir file.xlsx 一切似乎都正常。但是,编码设置为不正确的。代替了我从LibreOffice Calc手动执行“另存为”时得到的UTF-8破折号(—),它给了我\ 227( )。在CSV上使用文件会给我“非ISO扩展ASCII文本,行很长”。因此,有两个问题: 这到底是怎么回事? 我如何告诉libreoffice转换为UTF-8? 我要转换的特定文件在这里。

1
某些应用程序不接受“撰写”键中的某些字符
问题是撰写键可以正常工作,但是某些应用程序不接受其中的某些字符。例如,我可以∞在Emacs(Compose+ 8+ 8)中键入字符,但这在FireFox,Konsole和Kate中不起作用。但是许多其他字符,例如在其中€键入(在FireFox,Konsole和Kate中使用Compose )也可以正常工作。另外,我可以使用简单的复制粘贴(从两个剪贴板中的任何一个)插入问题符号。 那么,是什么原因引起的,以及如何解决? 抱歉,但我不知道如何研究此问题。我发现有些人的Compose键在某些应用程序中根本不起作用,但就我而言,它是可行的,尽管某种程度上是可行的。 设置:组合键/etc/default/keyboard和KDE键盘设置中都绑定到右侧的超级键。

4
如何识别一个奇怪的角色?
我试图识别我正在使用的文件中找到的一个奇怪字符: $ cat file � $ od file 0000000 005353 0000002 $ od -c file 0000000 353 \n 0000002 $ od -x file 0000000 0aeb 0000002 该文件使用ISO-8859编码,无法转换为UTF-8: $ iconv -f ISO-8859 -t UTF-8 file iconv: conversion from `ISO-8859' is not supported Try `iconv --help' or `iconv --usage' for more information. …

2
文件名中的特殊字符(\#033OA)
我在rsync期间遇到了一个非常顽固的错误,出现了一个小问题。这是由文件名中包含特殊字符的文件引起的。还有其他一些,但是我可以通过对文件名的编码进行一些转换来解决。但是,我什至找不到这个文件。 所以这是rsync所说的: ../.\#033OA.tex.pyD0MB" failed: No such file or directory (2) 首先要注意的是,字符代码不能是十六进制或八进制的,所以我用Google搜索了它,仅发现了这个。因此它可能是一个CURSOR UP字符(或不是)。我试过了 ls -la *`printf '\033OA'`* 无济于事。我也曾尝试将该目录的ls输出管道化,od但无济于事。 我还可以做些什么?还是我一直在寻找什么角色? 谢谢

3
处理以BOM表(FF FE)开头的文件
我收到了带有FF FEBOM 的.csv文件: $ head -n1 dotan.csv | hd 00000000 ff fe 41 00 64 00 20 00 67 00 72 00 6f 00 75 00 |..A.d. .g.r.o.u.| 当使用awk它解析时,我得到了一堆空字节,我怀疑这是由于字节顺序所致。如何交换该文件上的字节顺序(使用CLI),以便普通工具可以使用它? 请注意,我认为该文件仅是ASCII字符(BOM除外),但是我不能确认grep它是二进制文件: $ grep -P '^[\x00-\x7f]' dotan.csv Binary file dotan.csv matches 在VIM中搜索相同的字符串会显示每个匹配的字符! 使用iconv转换为ASCII不会摆脱\ x00值,实际上,这使问题变得更糟,因为它们现在看起来像空字节而不是UTF-8! $ iconv -f UTF-8 -t ASCII dotan.csv > …

1
Windows下生成的每行文本文件末尾的“ ^ M”
我想知道为什么如果您打开在Windows记事本下的UNIX下创建的文本文件,您会发现它在^M哪里应该有新行? 我的理解是,在Windows中,每一行与结束\r\n,即 0x0D0A在ASCII,同时^M具有ASCII值0x5E4D。我不能将两者从一个联系到另一个。

2
如何更改语言环境/编码,以避免在终端中出现奇怪的字符?
tree当我从Putty连接到ubuntu盒子并启动时,我已经安装了它tree: $ tree âââ html.vim -> xml.vim âââ js.vim -> xml.vim âââ xml.vim 代替这个: $ tree --charset=ANSII |-- html.vim -> xml.vim |-- js.vim -> xml.vim `-- xml.vim 例如,当我列出来自npm(的软件包管理器nodejs)的软件包时,我也会遇到此问题 $ npm list /home/monkey/scripts/chatter ââ⏠express@3.0.6 â âââ buffer-crc32@0.1.1 â âââ commander@0.6.1 â ââ⏠connect@2.7.2 â â âââ bytes@0.1.0 我该如何更改(从Putty或linux box)?

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.