在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的主要内容,如果未能解决你的问题,请参考以下文章