utf8.width()

类型 函数
utf8.*
返回值 数字
修订版本 版本 2024.3703
关键词 utf8, UTF-8, Unicode, 字符串, 宽度

概述

计算UTF-8字符串 s 的宽度(以字符位置为单位),同时考虑字符是否是双倍宽度、“组合”字符(通常是 重音符号)、不可打印字符或常规的单倍宽度字符。

请注意,这只是一个近似值,可能有用,但仅限于适用等宽宽度估计的情况。

此函数的返回值取决于用法

语法

utf8.width( s [, ambiIsDouble [, defaultWidth]] )
s (必填)

字符串. 要检查的字符串。

ambiIsDouble (可选)

布尔值. 如果为 true,则宽度不明确的字符的宽度将视为 2;否则视为 1

defaultWidth (可选)

数字. 如果指定,此值将用作不可打印字符的宽度。

示例

local utf8 = require( "plugin.utf8" )

local testStr = "♡ 你好,世界 ♡"

print( utf8.width( testStr ) )  --> 14
print( utf8.width( testStr, true ) )  --> 16
print( utf8.width( utf8.codepoint( testStr, 5, 7 ), false ) )  --> 2