Questions tagged «character-encoding»

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

2
如何将VIM的默认编码设置为UTF-8?
我想为一个提供翻译后字符串的开源项目做出贡献。他们的要求之一是,提供者必须使用UTF-8作为PO文件的编码。 我在Linux上使用VIM 7.3。如何确定VIM的编码设置为UTF-8,以便可以正确方式编辑和保存.po文件?

6
过滤无效的utf8
我有一个未知或混合编码的文本文件。我想查看包含无效UTF-8字节序列的行(通过将文本文件传送到某些程序中)。同样,我想过滤掉有效的UTF-8行。换句话说,我正在寻找。grep [notutf8] 理想的解决方案是可移植的,简短的并且可以推广到其他编码,但是如果您觉得最好的方法是烘焙UTF-8的定义,请继续。

4
^ M字符叫什么?
TexPad正在创建它。我知道这有些死气沉沉了。我只是不记得它是名字。 蓝色字符: 我只想从文档中批量删除它们。 您如何输入?

3
我如何测试文本文件的编码…有效吗?它是什么?
我有几个.htm在Gedit中打开的文件,没有任何警告/错误,但是当我在中打开这些文件时Jedit,它警告我无效的UTF-8编码... HTML元标记表示“ charset = ISO-8859-1”。Jedit允许使用一个后备编码列表和一个编码自动检测器列表(当前为“ BOM XML-PI”),因此我的直接问题已经解决。但是,这让我开始思考:如果不存在元数据怎么办? 当编码信息不可用时,是否有一个CLI程序可以“猜测”哪些编码可能适用? 而且,尽管这是一个稍微不同的问题;是否有一个CLI程序来测试已知编码的有效性?

4
将字节回显到文件
我正在尝试使用i2c总线将rasberry Pi连接到某些显示器。首先,我想手动写入内容,尤其是字节到文件中。 如何将特定字节写入文件? 我已经读过一篇文章,并且我认为我的问题应该通过这样的方法解决 echo -n -e \x66\x6f\x6f > byteFileForNow 但是,当我使用nano而不是foo打开该文件时,我看到: x66x6fx6f 因此,反斜杠被转义,但字节本身未转义。这次我也只在没有-e的情况下尝试了相同的操作,因此我希望可以看到\ x66 \ x6f \ x6f,但是与以前一样。 因此,echo转义了反斜杠,单独的反斜杠和反斜杠,无论是否应该这样做。 任何想法如何解决这个问题? 根据手册页,应该已经完成​​了我想要的工作。

3
Linux上的文件名和路径使用哪种字符集编码?
是否取决于我使用的文件系统?例如,ext2 / ext3 / ext4,但是当我插入一张带有ISO 9660的“ joliet” CD-ROM时会发生什么呢?我听说POSIX包含某种文件名字符集编码规范? 本质上,我想知道是否有UTF-8编码的文件名,在将其传递给Linux中的文件I / O API之前需要进行哪些处理/转换?

2
find(1):如何实现星号通配符以使其在某些文件名上失败?
在文件名使用UTF-8的文件系统中,我的文件名称错误;它显示为:D�sinstaller,根据zsh:的实际名称 D$'\351'sinstaller,Latin1表示Désinstaller,本身是法式野蛮的“卸载”。Zsh不会将其与之匹配,[[ $file =~ '^.*$' ]]但会与之匹配(*这是我期望的行为)。 现在,我仍然希望在运行时能够找到它find . -name '*'-事实上,我绝不会期望文件名能够通过该测试。然而,随着LANG=en_US.utf8,该文件确实不露面,我必须集LANG=C(或en_US,或'')为它工作。 问题: 背后的实现是什么,我如何预测结果? 信息:Arch Linux 3.14.37-1-lts,查找(GNU findutils)4.4.2

4
如何在grep中使用十六进制代码指定字符?
这个问题是从Stack Overflow 迁移过来的,因为可以在Unix&Linux Stack Exchange上回答。 迁移 8年前。 我正在使用以下命令对十六进制代码0900(而不是अ)到097F(而不是व)的grep字符集范围进行grep。如何使用十六进制代码代替अ和व? bzcat archive.bz2 | grep -v '<[अ-व]*\s' | tr '[:punct:][:blank:][:digit:]' '\n' | uniq | grep -o '^[अ-व]*$' | sort -f | uniq -c | sort -nr | head -50000 | awk '{print "<w f=\""$1"\">"$2"</w>"}' > hindi.xml 我得到以下输出: <w f="399651">और</w> <w f="264423">एक</w> <w f="213707">पर</w> …

3
了解Unix文件名编码
我很难理解文件名编码的工作方式。在unix.SE上,我发现矛盾的解释。 文件名存储为字符 引用另一个答案: 关于Linux上文件系统字符编码的几个问题 正如您在问题中提到的[…],UNIX文件名只是一个字符序列;内核对编码一无所知,而编码完全是用户空间(即应用程序级)的概念。 如果文件名存储为字符,则必须进行某种编码,因为最后文件名必须以磁盘上的位或字节序列结尾。如果用户可以选择任何编码来将字符映射到馈送给内核的字节序列,则可以为有效文件名创建任何字节序列。 假设以下内容:用户使用随机编码X,它将文件foo转换为字节序列α并将其保存到磁盘。另一个用户使用编码ÿ。在这种编码中,α转换为/,不允许作为文件名。但是,对于第一个用户,该文件有效。 我认为这种情况不会发生。 文件名存储为二进制Blob 引用另一个答案: 在Linux上,文件名和路径使用哪种字符集编码? 正如其他人所指出的那样,这确实没有答案:文件名和路径没有编码。OS仅处理字节序列。各个应用程序可能选择将它们解释为以某种方式进行编码,但这有所不同。 如果系统不处理字符,如何在文件名中禁止使用特定字符(例如/或NULL)?没有/ 编码就没有a的概念。 一种解释是,文件系统可以存储包含任何 字符的文件名,只有考虑到编码的用户程序才会阻止包含无效字符的文件名。反过来,这意味着文件系统和内核可以毫无困难地处理包含/。的文件名。 我也认为这是错误的。 编码在哪里进行,不允许使用特定字符的限制在哪里?

5
为什么有些字符在Chrome中显示为正方形?
例如,在开发工具中,我得到如下信息: 其中一些方块位于行尾,最初我以为是回车,但事实并非如此。 此外,广场出现后=或>在许多地方没有换行,并期待在十六进制编辑器显示该文件不存在根本之间的任何字符=和"(例如id="被显示为id=? ") 有时在网页中也会出现这种情况,例如,我看到了: 我复制了该句子,在十六进制编辑器中查看了该句子,并且再次在e和之间没有字符:。源代码中也没有显示任何内容。 我以前从未见过此消息,而且只有在几天前重新安装arch之后才见过。 Chrome是:Version 19.0.1084.15 dev Arch是:Kernel 3.3.1-1-ARCH,x86_64 locale.gen具有未en_GB注释的语言环境(UTF-8和ISO-8859-1)。chrome中的编码默认为ISO-8859-1,但将其切换为UTF-8不会造成任何影响。 这是我使用的html文件:test.html 一个修复程序将是很棒的,解释将是很棒的,确认这是(或不是)我的安装程序中的一个问题也很好。 编辑:研究字体后,我发现在两种情况下都试图使用arial,它在arch中是ttf-ms-fonts软件包的一部分。安装后会导致字体更改,但是正方形仍然保留(尽管形状不同)。在这两种情况下,字体都不符合系统的默认字体。

2
tr抱怨“非法字节序列”
我是UNIX的新手,我正在使用Kirk McElhearn的“ Mac OS X命令行”自学一些命令。 我试图使用tr,grep以便可以在常规的MS-Office Word文档中搜索文本字符串。 $ tr '\r' '\n' < target-file | grep search-string 但是它返回的只是: Illegal byte sequence. robomechanoid:Position-Paper-Final-Draft robertjralph$ tr '\r' '\n' < Position-Paper-Final-Version.docx | grep DeCSS tr: Illegal byte sequence robomechanoid:Position-Paper-Final-Draft robertjralph$ 我实际上在我创建的脚本上运行了同一行,vi并且可以正确搜索。



5
将UTF-8文件转换为ASCII(尽力而为)
我有一个UTF-8文件,其中包含多种语言的文本。其中很多是人们的名字。我需要将其转换为ASCII,并且我需要结果看起来尽可能体面。 有多种方法可以实现从较宽编码到较窄编码的转换。最简单的转换是将所有非ASCII字符替换为某个占位符,例如“ _”。如果我知道文件所用的语言,则还有其他可能性,例如罗马化。 Unix上可用的哪种Unix工具或编程语言库可以使我从UTF-8到ASCII的转换(尽力而为)? 大部分文本使用基于欧洲拉丁语的语言。

6
生成随机密码;为什么不便携?
我想生成一个随机密码,并且这样做: </dev/urandom tr -dc [:print:] | head -c 64 在运行Ubuntu的笔记本电脑上,这只会按预期生成可打印的字符。但是,当我进入学校的运行Red Hat Enterprise Linux的服务器并在其中运行服务器时,3!ri�b�GrӴ��1�H�<�oM����&�nMC[�Pb�|L%MP�����9��fL2q���IFmsd|l�K会得到诸如之类的输出,但根本无法执行。这里可能出什么问题了?

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.