AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[unicode](unix)

Martin Hope
AlastairG
Asked: 2025-01-06 23:43:32 +0800 CST

iconv 无法将有效的 utf-8 字符检测为 utf-8

  • 9

我的输入数据如下(由 hexdump 生成):

000000f0  69 61 6e e2 80 99 73 20  65 79 65 73 20 61 62 72  |ian...s eyes abr|

当我在 Firefox 中打开此 html() 文件时,它会显示这些字符:

ian’s eyes abr

根据链接https://superuser.com/questions/1237545/characters-in-email-displayed-like-e2-80-99,“E2 80 99 是在 UTF-8 中编码右单引号 (') 的十六进制值序列”。

此网站同意:https ://www.utf8-chartable.de/unicode-utf8-table.pl?start=8192&number=128

当我对包含以下字符的文件运行此 iconv 命令时:

iconv -f UTF-8 -t ISO-8859-15 test_chapter.html > blah.html

我得到输出:

iconv: illegal input sequence at position 243

并且“blah.html”的内容在撇号所在的位置被截断。

因此,总而言之,互联网说这是 UTF-8 的有效字节序列,但 iconv 不同意。

有人能帮我了解发生了什么吗?这是 iconv 中的错误吗?

顺便提一下,当我使用 kindlegen 生成 AZW 文件时,字符无法正确显示。互联网告诉我,我需要将文件转换为 UTF-8,但据我所知,它已经是了!

unicode
  • 1 个回答
  • 400 Views
Martin Hope
andrei-n
Asked: 2024-09-20 16:10:42 +0800 CST

无法在 groff 中插入 Mapsto 字符 ↦

  • 7

我正在尝试学习如何在 groff 中插入 mapsto (↦,U+21A6) 字符。

我正在尝试使用此代码插入字符

\[u21A6]

但是我收到以下错误消息,并且输出文件中没有插入任何内容:

troff: doc.ms:40: warning: can't find special character 'u21A6'

我尝试遵循多个教程并阅读一些文档,但找不到问题的解决方案。

我做错什么了?

(顺便说一下,我尝试了使用和不使用 -Kutf8 选项,以及在文件中插入 Unicode 字符 ↦)

以下是文档示例(文件 test.ms):

.TL
document
.LP
a \[u02DA] b

a ↦ b

.EQ
define maps_to % ↦ %
a maps_to b
.EN

我使用的命令行是:

groff -e -ms -Kutf8 test.ms | gv -
unicode
  • 1 个回答
  • 38 Views
Martin Hope
Chris972
Asked: 2023-09-28 12:31:01 +0800 CST

我需要创建一个管道将字符串从 UTF-8 转换为 UTF-7-IMAP

  • 5

为了在 IMAP 邮件目录中自动通过命令行创建数百个目录,我需要能够将 UTF-8 字符串即时转换为 UTF-7-IMAP。

在php中,我找到了一种用字符串作为参数传递的方法来做到这一点,但它不是很实用,并且需要安装php。

<?php
echo mb_convert_encoding($argv[1], "UTF7-IMAP", "UTF8");
?>

Iconv 似乎不知道 UTF-7-IMAP。

我找到了一种语法,可以让你做相反的事情:

echo "Sant&AOk-" | tr "&" "+" | iconv -f UTF-7 -t UTF-8
Santé

但这是不可逆的(最后的“-”丢失了)

echo "Santé" | iconv -f UTF-8 -t UTF-7 | tr '+' '&'
Sant&AOk

我在互联网上几乎找不到这方面的信息。

编辑:

我发现这工作正常:

perl -CSA -MEncode::IMAPUTF7 -le 'print Encode::IMAPUTF7::encode("IMAP-UTF-7", shift)' "Santé"

但如何创建管道呢?

echo "Santé" | perl ...
unicode
  • 2 个回答
  • 40 Views
Martin Hope
Vlastimil Burián
Asked: 2022-10-07 20:54:08 +0800 CST

我的文字是否已无法修复?

  • 3

我损坏的捷克文本:

NOTE ON CZECH BIRTH NUMBER VALIDATION IN CZECH LANGUAGE;
in Czechia birth number = personal identification number
========================================================
Do roku 1985 bylo pé?idá?leno cca 1000 rodnű§ch á?űŮsel, kterűŔ nejsou dá?litelnűŔ 11.
NenűŮ vylouá?eno, éƒe se v miniműŔlnűŮm poá?tu vyskytly i po tomto roce.
KorektnűŮ algoritmus je nűŔsledujűŮcűŮ:
spoá?ti zbytek po dá?lenűŮ prvnűŮch devűŮti á?űŮslic a á?űŮsla 11; je-li zbytek 10, musűŮ bű§t poslednűŮ á?űŮslice 0; jinak poslednűŮ á?űŮslice musűŮ bű§t rovna zbytku; Tedy 780123/3540 je korektnűŮ rodnű? á?űŮslo, aá?koliv nenűŮ dá?litelnű? jedenűŔcti.

最后两个单词拼写正确:dá?litelnű? jedenűŔcti = dělitelné jedenácti .


我找到了一个 FTFY 工具https://ftfy.readthedocs.io/en/latest/但即使使用它我也无法修复文本。

它应该是带有 BOM 的 UTF-8,我尝试使用 VI 删除 BOM;使用 Sublime Text 将我的文本重新加载到每种可能的编码中。

所以我的想法是,这个文本可能丢失了一些信息,现在无法修复?

这将是一个遗憾,因为我有更多的文字。


笔记:

  • 不,我没有任何以前未损坏的文本,也不知道它是如何发生的。

  • set | grep -E '^LC_|^LANG':

LANG=en_US.UTF-8
LANGUAGE=en_US
LC_ADDRESS=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_TIME=en_US.UTF-8

应该有什么地方cs_CZ吗?只是吐槽...

  • file MainWindow.xaml.cs:
MainWindow.xaml.cs: C++ source, Unicode text, UTF-8 text
  • od -t ax1 MainWindow.xaml.cs: 输出量很大,一丧葬回来就缩水了。

  • LC_ALL=cs_CZ.UTF-8 head -50 '/mnt/windows/Users/vlastimil/Downloads/_DISK_D/csharp/Rodné číslo a IČ/Rodné číslo a IČ/MainWindow.xaml.cs' | grep jeden

Tedy 780123/3540 je korektnűŮ rodnű? á?űŮslo, aá?koliv nenűŮ dá?litelnű? jedenűŔcti.

LC_ALL=cs_CZ.UTF-8 head -50 '/mnt/windows/Users/vlastimil/Downloads/_DISK_D/csharp/Rodné číslo a IČ/Rodné číslo a IČ/MainWindow.xaml.cs' | grep jeden | od -t ax1

0000000   T   e   d   y  sp   7   8   0   1   2   3   /   3   5   4   0
         54  65  64  79  20  37  38  30  31  32  33  2f  33  35  34  30
0000020  sp   j   e  sp   k   o   r   e   k   t   n   E   1   E   .  sp
         20  6a  65  20  6b  6f  72  65  6b  74  6e  c5  b1  c5  ae  20
0000040   r   o   d   n   E   1   ?  sp   C   !   ?   E   1   E   .   s
         72  6f  64  6e  c5  b1  3f  20  c3  a1  3f  c5  b1  c5  ae  73
0000060   l   o   ,  sp   a   C   !   ?   k   o   l   i   v  sp   n   e
         6c  6f  2c  20  61  c3  a1  3f  6b  6f  6c  69  76  20  6e  65
0000100   n   E   1   E   .  sp   d   C   !   ?   l   i   t   e   l   n
         6e  c5  b1  c5  ae  20  64  c3  a1  3f  6c  69  74  65  6c  6e
0000120   E   1   ?  sp   j   e   d   e   n   E   1   E dc4   c   t   i
         c5  b1  3f  20  6a  65  64  65  6e  c5  b1  c5  94  63  74  69
0000140   .  nl
         2e  0a
0000142

不知道以上是什么意思,抱歉耽搁了。

text-processing unicode
  • 1 个回答
  • 78 Views
Martin Hope
Edman
Asked: 2022-06-06 23:04:16 +0800 CST

在 ed 中输入 unicode 字符

  • 0

我想知道是否可以将 Unicode 字符(如 em_dash 和大引号)输入 ed。我正在完成一个需要在文档中包含这些特殊字符的项目。

unicode ed
  • 1 个回答
  • 48 Views
Martin Hope
Dingo
Asked: 2022-05-15 09:03:27 +0800 CST

用 utf-8 功能替换 tr

  • 2

为了隔离一首诗的任何一行中的最后一个单词(列出所有押韵),我将几个代码片段放在一起获得这个

awk '{print $NF}' input.txt | tr 'A-Z' 'a-z'  | tr -sc 'a-z' '\n' | rev |  sort | uniq | sort -d | rev

将其应用于这样的诗歌:

Se a ciascun l'interno affanno
Si leggesse in fronte scritto
Quanti mai, che invidia fanno
Ci farebbero pietà! 

我明白了

fanno
affanno
scritto
piet

如您所见,“ pietà ”这个词没有重音字符。我想这取决于没有 tr UTF-8 功能。是否有任何替代 tr 能够在这一个班轮中执行相同的任务,但保留 UTF-8 重音字符?

text-processing unicode
  • 2 个回答
  • 276 Views
Martin Hope
weisbrja
Asked: 2022-02-22 07:11:14 +0800 CST

Suckless 的 st 有时会弄乱 UTF-8

  • 0

我用 Rust 编写了一个 echo 程序(可以处理 UTF-8),有时 st 似乎会弄乱 UTF-8 输入。我尝试了不同的终端仿真器,比如 alacritty 和 gnome-terminal,它们运行良好。

要重现这一点:

  • 在 st 中运行这个 Rust 代码:
use std::io::BufRead;

fn main() {
    for line in std::io::stdin().lock().lines() {
        let line = line.unwrap();
        println!("{line}");
    }
}
  • 输入诸如“Rückgängig”之类的内容,或其他带有非英文字符的字符串。

一段时间后,程序应该会失败:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: InvalidData, message: "stream did not contain valid UTF-8" }', src/main.rs:5:25

有谁知道如何解决这个问题或为什么会发生这种情况?

suckless-terminal unicode
  • 1 个回答
  • 216 Views
Martin Hope
Jared Smith
Asked: 2021-09-05 11:33:20 +0800 CST

文件路径可以是无效的 UTF-8 吗?

  • 1

标题说明了一切:如果我有文件路径的字节并且我尝试将它们解码为 UTF-8,操作是否可能会失败(即有效的 unix 文件路径的字节可能是无效的 UTF-8)?

filenames unicode
  • 2 个回答
  • 354 Views
Martin Hope
Mahmoud Farouq
Asked: 2020-01-01 07:32:09 +0800 CST

如何在终端中画一条实线?

  • 4

我一直在寻找这个,但没有得到满意的答案。

我从 Gnu/Linuxtree命令的输出中截取了这张截图。

在此处输入图像描述

我想知道如何绘制或打印这样的线条,我尝试阅读树程序的源代码,但什么都不懂。

terminal unicode
  • 5 个回答
  • 4939 Views
Martin Hope
a3nm
Asked: 2019-11-24 06:19:25 +0800 CST

提取邮件标头并解码 MIME 编码字

  • 2

作为脚本的一部分,我想获取一个包含电子邮件的文件并提取标题,例如主题标题。以下几乎可以工作:

formail -c -x subject < FILE

但它不解码使用 MIME 编码字语法(又名 RFC2047)编码的标头,例如=?UTF-8?B?w6lsw6ltZW50?=.

在处理 MIME 编码字部分解码的同时提取电子邮件标题的好方法是什么?

相关问题:https ://stackoverflow.com/questions/39457380/retrieve-email-subject-from-file-via-bash

email unicode
  • 1 个回答
  • 2717 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve