标签: unicode

如何在`grep`中使用十六进制代码指定字符?

我正在使用以下命令将十六进制代码 0900(而不是?)的字符集范围 grep 到 097F(而不是?)。我如何使用十六进制代码代替 ? 和 ??

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
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

    <w f="399651">??</w>
    <w f="264423">??</w>
    <w f="213707">??</w>
    <w f="74728">??</w>
    <w f="44281">??</w>
    <w f="35125">??</w>
    <w f="26628">?</w>
    <w f="23981">??</w>
    <w f="22861">??</w> 
    ...
Run Code Online (Sandbox Code Playgroud)

我只想使用十六进制代码而不是 ? 和 ?在上面的命令中。

如果根本不可能使用十六进制代码,我可以使用 unicode 代替十六进制代码作为字符集 ('?-?') 吗?

我正在使用 Ubuntu 10.04

shell grep character-encoding unicode

36
推荐指数
3
解决办法
8万
查看次数

在 unix 命令行上在 Unicode 规范化形式之间进行转换

在 Unicode 中,某些字符组合具有不止一种表示形式。

例如,字符ä可以表示为

  • “ä”,即代码点 U+00E4(c3 a4UTF-8 编码中的两个字节),或作为
  • “a?”,即两个代码点 U+0061 U+0308(61 cc 88UTF-8 中的三个字节)。

根据 Unicode 标准,这两种表示形式是等效的,但具有不同的“规范化形式”,请参阅UAX #15:Unicode 规范化形式

unix 工具箱里有各种文本转换工具,想到sedtriconv、 Perl 。如何在命令行上快速轻松地进行 NF 转换?

command-line text-processing unicode conversion

30
推荐指数
2
解决办法
8116
查看次数

如何正确解压缩带有希伯来语名称的文件的 ZIP 存档?

有人给我发送了一个 ZIP 文件,其中包含带有希伯来语名称的文件(并在 Windows 上创建,不确定使用哪种工具)。我在 Debian Stretch 上使用 LXDE。Gnome 档案管理器设法解压缩文件,但希伯来文字符是乱码。我我正在将 UTF-8 八位字节扩展为 Unicode 字符,例如我有一个文件名有四个字符和一个 .doc 就足够了,字符是: 0x008E 0x0087 0x008E 0x0085 。使用命令行解压缩实用程序更糟糕 - 它拒绝完全解压缩,抱怨“无效或不完整的多字节或宽字符”。

所以,我的问题是:

  • 是否有另一个解压缩实用程序可以使用正确的名称解压缩我的文件?
  • 文件压缩方式是否有问题,或者只是 ZIP 实现的不兼容?或者甚至是 Linux ZIP 实用程序的错误功能/错误?
  • 使用乱码解压缩后,我该怎么做才能获得正确的文件名?

character-encoding zip file-format unicode

30
推荐指数
4
解决办法
7万
查看次数

sort为什么这么说?= ?

?(“拉丁语 epsilon”)是某些非洲语言中使用的字母,通常表示英语“bed”中的元音。在 Unicode 中,它被编码为 U+025B,与日常非常不同e

但是,如果我sort执行以下操作:

eb
ed
?a
?c
Run Code Online (Sandbox Code Playgroud)

似乎sort考虑?e等效:

?a
eb
?c
ed
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?有没有一种方法可以为ing 目的制作?e区分sort

sort unicode locale

27
推荐指数
3
解决办法
4367
查看次数

实际“输入”特殊 UTF-8 字符的最佳方法是什么?

我系统上的所有东西(需要它)都支持 UTF-8 就好了。
当您想要输出时,这一切都很好...但是如果您想要轻松输入怎么办?

目前,我可以轻松输入的唯一非 ASCII 字符是像 é 这样的字符,使用AtlGr.
但是对于像 ? ² ? ? ? 目前我必须:

  1. 打开浏览器
  2. 浏览https://www.utf8icons.com或类似网站
  3. 在网站上单击、键入和搜索很多内容,以转到包含我想要的符号的页面
  4. 复制它
  5. 将其粘贴到我需要的程序中
  6. (可选)关闭浏览器

我正在寻找的是一个可以做这样的事情的程序:

  • 在现代桌面环境中在后台运行(在我的情况下为 Cinnamon)
  • 在按下类似的东西后跳转到前台以显示相当流行的 UTF-8 符号的完整列表 F1
  • 让我点击一个符号,然后它将被发送到我上次使用的程序,就像它是一个按键
  • 给我一个选项,将其配置为在此“假按键”后保持可见或跳回背景

简而言之:是否有支持非 ASCII UTF-8 的虚拟键盘程序?

实际上......我已经对任何改进我的方法感到满意。

编辑: 对于其他人在这里结束并且不想自己阅读所有答案(或添加已经给出的答案):
这些是已经提到的选项+答案链接+专业人士和反对者。
随意在下面添加额外的解决方案(在提供它们作为详细答案之后)

  • ibus(通常与CtrlShiftE)?无法让它在 Cinnamon 上工作
  • onboard? pro:似乎可以做我需要的一切 + 支持片段,con:只有(默认情况下)包含非拉丁布局用于数学,其他具有流行 UTF-8 字符的布局必须手动创建
  • gucharmap? 亲们:字符的很多,易于搜索CON:不容易前台/后台之间跳转(大概可以用肉桂本身就是一个解决办法来处理)
  • kcharselect? 相同的利弊gucharmap
  • 程序本身的解决方案(例如, …

keyboard input unicode virtual-interface

25
推荐指数
3
解决办法
2281
查看次数

23
推荐指数
4
解决办法
1万
查看次数

在 bash 中,如何将 Unicode Codepoint [0-9A-F] 转换为可打印字符?

我有一个 Unicode 代码点列表,但我不知道将这些十六进制值转换为它们代表的实际字符的“简单”方法......

我听说zshecho -e '\u0965',但我使用bash 4.1。

对于 bash,有没有像 zsh 方法一样简单的东西?

bash unicode

23
推荐指数
3
解决办法
4万
查看次数

如何检查文件是否有 utf-8 文本的 BOM

如何从命令行检查 utf-8 文本文件是否具有 BOM?

file命令显示我UTF-8 Unicode text

但我不知道这意味着文件中没有 BOM。

我正在使用Ubuntu 12.04.

unicode

22
推荐指数
2
解决办法
4万
查看次数

有没有通用的方法来编写 Unicode 字符?

有时我想在各种程序中编写特殊的 Unicode 字符,例如长破折号 (—),例如 vim、Chrome(就像刚才!)或 LibreOffice。

在 LibreOffice 中,我可以通过插入菜单下的专用对话框来实现这一点。其他程序似乎没有内置方式。在这些情况下,我的解决方案是在维基百科上查找字符,复制并粘贴。

有没有一种通用的方法可以在 Linux 中接受文本输入的任何程序中编写 Unicode 字符,而不必从已经打印的地方复制和粘贴?

x11 input-method unicode

20
推荐指数
2
解决办法
7685
查看次数

UTF 8 文件名?

在基于 unix 的操作系统中是否允许使用 utf6 文件名?如果是这样,我需要做任何特殊的事情来将文件写入磁盘。

让我解释一下我希望做什么。我正在编写一个应用程序,它将通过 ftp 将文件传输到远程系统,但文件名是通过一些可能在 utf8 中的元数据集动态设置的。我想知道是否需要做些什么才能将文件写入 unix/linux 中的磁盘。

另外作为后续,有人知道如果我将 utf 8 文件名上传到不支持 utf8 的系统会发生什么吗?

linux filenames unicode

19
推荐指数
2
解决办法
2万
查看次数