notes
notes copied to clipboard
统计 UTF-8 字符(文字)个数 or counting UTF-8 characters
背景
假如,你有一个蒸汽炸锅... 咳咳,不好意思,串台了。
假如,你需要写一个验证规则来限制文章标题和内容的长度,而你的产品又是面向全世界的...
一般我们会选择 UTF-8 来作为字符集,但 UTF-8 字符集一个字符所占的字节数不定 1-4个字节的范围。
因此 UTF-8 字符串的字节数跟实际的文字字符数不见得是相同的,单纯统计字符串的字节数是不准确的。
下面是不同编程语言的字符数统计方法备忘,欢迎补充
两个特殊字符串,供大家尝试
'I❤𠀰' // 3 characters
'😹🐶😹🐶' // 4 characters
PHP
// 10 characters
\mb_strlen('hello 😹🐶😹🐶', 'UTF-8');
Go
// 10 characters
len([]rune("hello 😹🐶😹🐶"))
JavaScript
// 10 characters
[...'hello 😹🐶😹🐶'].length;
Rust
use unicode_segmentation::UnicodeSegmentation;
// 10 characters
"hello 😹🐶😹🐶".graphemes(true).count();