macos - 为什么 nkf 命令从 UTF8-MAC 转换为 UTF8 时会删除一个字符?
问题描述
我有一个用 UTF8-MAC 编码的文本文件。这包含一行,Åtvidaberg
.
"t"
当将此文本文件从 UTF8-MAC 转换为 UTF8 时,nkf 命令会删除一个字符。
是什么原因?
$ cat test.txt
Åtvidaberg
(↑ \x41\xCC\x8A\x74\x76\x69\x64\x61\x62\x65\x72\x67)
$ nkf -w --ic=UTF8-MAC test.txt
Åvidaberg
(↑ \xC3\x85\x76\x69\x64\x61\x62\x65\x72\x67, "t" is missing!)
通常,我假设没有字符被删除。 这个网络转换器或 macOS 的 iconv 命令在转换相同的字符串时不会删除任何字符 Åtvidaberg
。
$ iconv -f UTF8-MAC -t UTF8 test.txt
Åtvidaberg
(↑ \xC3\x85\x74\x76\x69\x64\x61\x62\x65\x72\x67)
环境
我在 macOS10.14.6 和 Ubuntu18.04 上试过。
nkf 版本如下。它们都是使用brew
andapt
命令安装的。
In macOS
$ nkf --version
Network Kanji Filter Version 2.1.5 (2018-12-15)
Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa).
Copyright (C) 1996-2018, The nkf Project.
In ubuntu
$ nkf --version
Network Kanji Filter Version 2.1.4 (2015-12-12)
Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa).
Copyright (C) 1996-2015, The nkf Project.
解决方案
推荐阅读
- android - 使用 EditText.setText() 时如何禁用 textwWatcher?
- lua - 当我将工具从 Starterpack 移动到玩家背包时,ServerScriptService 中的 M1 系统不起作用
- javascript - 使用 Javascript 更改 BackgroundColor 包括视频序列动画
- typescript - 我没有想出将 randomGeneratedMonth 转换为 Month 类型的方法
- common-lisp - CLSQL:本地启用 sql reader 语法
- python - 井字游戏(我的支票赢家的问题)Python
- c# - 当函数想要传递renderFragment时,如何使用没有任何参数的子组件渲染剃须刀组件
- c++ - 在 CUDA 中使用静态 __global__ 函数作为执行器创建函子
- android - Android CameraX - 手动更改曝光(持续时间和 ISO)和白平衡(温度和色调)
- data-structures - 可以有多个具有相同中序遍历的高度平衡 BST 吗?