Utf8.charpos

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Converts the UTF-8 codepoint position to byte-string position.

[[{{{image}}}|link=|]] Note: Code point characters beyond the byte value range (0-127) require at least 2 bytes to represent the character

Syntax

int, int utf8.charpos ( string input [[, int charpos = 0 ], int offset = 1 ] )

Required Arguments

  • input: A string character sequence

Optional Arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.

  • charpos: An integer representing the beginning position (offset will be added/subtracted).
  • offset: An integer representing the offset to charpos.

Returns

Returns the integer position as in a byte string and the integer codepoint at this position, nil otherwise.

Example

Click to collapse [-]
Server

This example takes the second codepoint character and shows the byte-string position and the codepoint character code.

local position, codepoint = utf8.charpos( "Привет", 2 )
print( position, codepoint )  -- 3, 1088
Click to collapse [-]
Client

This example extracts the first character by calculating the character length with the UTF8 functions and the inbuilt Lua function string.sub, which processes byte strings.

local input = "Привет мир" -- Hello World
local from = utf8.charpos( input, 1 ) -- 1
local to = utf8.charpos( input, 2 ) -- 3

local byteLength = to - from
outputConsole( byteLength ) -- 2

local character = string.sub( input, from, byteLength )
outputConsole( character ) -- П

See Also