Utf8.charpos: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Created page with "__NOTOC__ {{Shared function}} Converts the UTF-8 code point position to byte-string position. {{Note|Code point characters beyond the byte value range (0-127) require at leas...")
 
mNo edit summary
 
(2 intermediate revisions by the same user not shown)
Line 2: Line 2:
{{Shared function}}
{{Shared function}}


Converts the UTF-8 code point position to byte-string position.
Converts the UTF-8 codepoint position to byte-string position.
{{Note|Code point characters beyond the byte value range (0-127) require at least 2 bytes to represent the character}}
{{Note|Code point characters beyond the byte value range (0-127) require at least 2 bytes to represent the character}}


Line 13: Line 13:
===Optional Arguments===
===Optional Arguments===
{{OptionalArg}}
{{OptionalArg}}
*'''charpos:''' A number representing the beginning position (offset will be added/subtracted).
*'''charpos:''' An integer representing the beginning position (offset will be added/subtracted).
*'''offset:''' A number representing the offset to charpos.
*'''offset:''' An integer representing the offset to charpos.


===Returns===
===Returns===
Returns the ''number'' position as in a byte string and the ''number'' code point at this position, ''nil'' otherwise.
Returns the ''integer'' position as in a byte string and the ''integer'' codepoint at this position, ''nil'' otherwise.


==Example==
==Example==
<section name="Server" class="server" show="true">
<section name="Server" class="server" show="true">
This example takes the second code point character and shows the byte-string position and the code point character code.
This example takes the second codepoint character and shows the byte-string position and the codepoint character code.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
local position, codepoint = utf8.charpos( "Привет", 2 )
local position, codepoint = utf8.charpos( "Привет", 2 )

Latest revision as of 18:27, 15 February 2016

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