在microsoft中的字符串的UTF 8字节长度excel

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在microsoft中的字符串的UTF 8字节长度excel相关的知识,希望对你有一定的参考价值。

我试图将字符串长度添加到8到16之间,最大字节长度小于40(UTF8编码)。

我使用excel活动支持创建了数据验证: 数据验证(数据选项卡 - >数据验证(在excel 2016 mac中删除重复项和合并之间)),在“设置”选项卡中,有验证

criteria:
Validation Criteria:
Allow: Text Length
Data : between
Min : 8 & Max : 16

虽然上述验证满足了我的所有限制(8

对于其他语言(比如日语),尽管字符串长度是通过物理长度计算的(例如:日语中的"こんにちはこんにちはこんにちは",hellohellohello),UTF8字节值是45个字节,这违反了40个字节,认为长度只是15。

我在excel中找到了“LENB”函数,但它的值为30(而不是45)。我认为这是基于不同的编码(ansi也许)

我找到了UNICODE函数,它在上面的例子中给出了第一个字符(12371)的unicode号。但我不知道如何从这个数字中获取字节值(3个字节是第一个字符(こ)的值)。

在这方面的任何帮助将不胜感激。

答案

使用Unicode值,您可以计算特定字节将占用的字节数。 <128是1字节,否则<2048是2,否则<65536是3,否则4。

另一答案

我遇到了同样的问题,这里是没有VBA的解决方案,基于上面的答案+ this文章。假设你在A1中有一个字符串:

=SUM(
    IF(UNICODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<128, 1,
    IF(UNICODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<2048, 2,
    IF(UNICODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<65536, 3, 4
))))

离开单元格时别忘了使用数组函数(CTRL + SHIFT + ENTER):)

以上是关于在microsoft中的字符串的UTF 8字节长度excel的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据类型字节长度

第28月第8天

如何将4字节utf-8的emoji表情转换为unicode字符编码

JAVA 中汉字在不同编码下的字节不同

MySql中的varchar长度究竟是字节还是字符

如何在 Erlang 中找到 utf8 编码二进制文件的字符长度?