utils.utf8sub
Returns a substring of a UTF-8 string
Prototype
s = utils.utf8sub (str, start, end)
Description
Returns a substring of the UTF-8 string, starting at index 'start' and ending at index 'end'. Both may be negative to indicate counting from the right. The end point is optional and defaults to -1, which is the entire rest of the string.
For strings where each character has a character code of < 128, the behaviour is identical to string.sub:
The supplied string must be valid UTF-8. If not, the function returns nil followed by the byte position in error.
For strings where each character has a character code of < 128, the behaviour is identical to string.sub:
utils.utf8sub ("ABCDEF", 2, 3) --> BC
utils.utf8sub ("ABCDEF", 3) --> CDEF
utils.utf8sub ("ABCDEF", -1) --> F
The above examples are straight "ASCII" strings (ie. each byte is < 128), however the behaviour is different to string.sub with UTF-8 strings. For example:
utils.utf8sub (utils.fromhex ("C686C689C69C"), 1, 2) --> (hex) C686C689
utils.utf8sub (utils.fromhex ("C686C689C69C"), -1, -1) --> (hex) C69C
For Unicode characters (ie. whose character code is >= 128 and <= 255) then the function calculates the number of bytes that each "Unicode code point" will require, and count each one as a "column".The supplied string must be valid UTF-8. If not, the function returns nil followed by the byte position in error.
Lua functions
- utils.activatenotepad - Actvitates the specified notepad window
- utils.appendtonotepad - Appends text to the specified notepad window
- utils.base64decode - Decode a string which was base-64 encoded
- utils.base64encode - Encode a string with base-64 encoding
- utils.callbackslist - Returns a table of plugin callback function names
- utils.choose - Display a combo box with choices in it
- utils.colourcube - Changes the colour cube used by 256-colour ANSI codes
- utils.compress - Compress a string
- utils.decompress - Decompress a string
- utils.directorypicker - Invokes the Windows standard "directory picker" dialog box
- utils.editbox - Display a large message box and get free-format reply
- utils.edit_distance - Returns the Levenshtein Edit Distance between two words
- utils.filepicker - Invokes the Windows standard "file picker" dialog box
- utils.filterpicker - Display a dialog box which filters its contents as you type
- utils.fontpicker - Invokes the Windows standard "font picker" dialog box
- utils.fromhex - Convert a string from hex
- utils.functionlist - Returns a table of MUSHclient world function names
- utils.getfontfamilies - Returns all fonts available to Windows
- utils.glyph_available - Returns the glyph index of a glyph (character) in a font
- utils.hash - Hash a string, returning the hex codes
- utils.info - Information about directories, locale, etc.
- utils.infotypes - Returns a table of all GetInfo type selectors
- utils.inputbox - Display a message box and get free-format reply
- utils.listbox - Display a dialog box with choices in it in a single selection list box
- utils.md5 - Hash a string using the 128-bit MD5 algorithm
- utils.menufontsize - Alters the size of the font used in menus
- utils.metaphone - Returns metaphones (sound-alike codes) for the supplied word
- utils.msgbox - Display a message box and get a response
- utils.multilistbox - Display a dialog box with choices in it in a multiple selection list box
- utils.readdir - Read a disk directory into a table
- utils.reload_global_prefs - Forces global preferences file to be reloaded
- utils.sendtofront - Bring a window to the front
- utils.sha256 - Hash a string using a 256-bit hash
- utils.shellexecute - Executes a Windows "shell" command
- utils.spellcheckdialog - Spell-checker dialog
- utils.split - Split a delimited string into a table
- utils.timer - Returns the high-resolution timer output
- utils.tohex - Convert a string into hex
- utils.umsgbox - Display a message box and get a response (Unicode)
- utils.utf8convert - Encodes a string into a UTF-8 string
- utils.utf8decode - Encodes a series of Unicode codes into a UTF-8 string
- utils.utf8encode - Encodes a series of Unicode codes into a UTF-8 string
- utils.utf8valid - Checks if a UTF-8 string is valid
- utils.xmlread - Parses an XML string into a nested table
Topics
- Lua LPEG library
- Lua PCRE regular expression functions
- Lua base functions
- Lua bc (big number) functions
- Lua bit manipulation functions
- Lua coroutine functions
- Lua debug functions
- Lua io functions
- Lua math functions
- Lua os functions
- Lua package functions
- Lua script extensions
- Lua string functions
- Lua syntax
- Lua table functions
- Lua utilities
- Scripting callbacks - plugins
- Scripting