gpt4 book ai didi

linux - 使用 linux "cut"尊重 utf8 边界的字符串修剪

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:22:49 24 4
gpt4 key购买 nike

我正在做一些文本处理,我需要将一个字符串切割成短的子字符串。我使用了 cut 但它似乎会根据字节切割我的字符串。我的文本是多字节、utf8 编码文本的混合,使用 cut 通常会导致最后几个字节成为无效的 utf8 字节,这将导致我的进一步处理出现问题。所以我想知道是否有适当的方法来做到这一点?

附言我尝试了 -c 参数,但它仍然减少了字节数。

例如,(机器语言环境是 en_GB.UTF-8)

echo "是非常的危险"|剪切-c -6

是非

echo "是非常的危险"|剪切-c -7

是非

echo "是非常的危险"|剪切-c -8

是非

echo "是非常的危险"|剪切-c -9

很正常

最佳答案

感谢评论的人,显然这是 linux coreutils 中的一个已知错误:

http://lists.gnu.org/archive/html/bug-coreutils/2006-07/msg00044.html

可以追溯到 2006 年!

在 iconv -c 的帮助下,我有一个“解决方法”,它将忽略非法字节。

echo "是非常的危險" | cut -c -7 | iconv -c

这将产生有效序列“是非”(最后没有额外的非法字节)

关于linux - 使用 linux "cut"尊重 utf8 边界的字符串修剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18700455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com