Difference between revisions of "LlStringLength"
Jump to navigation
Jump to search
All Issues ~ Search JIRA for related Bugs
m |
|||
Line 26: | Line 26: | ||
// LSLWiki: '123' has 3 characters. | // LSLWiki: '123' has 3 characters. | ||
} | } | ||
} | |||
</lsl> | |||
<hr> | |||
*LSL-2 sees all strings as UTF8 | |||
*LSL-Mono sees all string as UTF16 | |||
*llStringLength gets the number of characters | |||
*Both UTF8 and UTF16 use multibyte characters | |||
*Some communication functions (i.e. llHTTPResponse) are limited by number of Bytes, and work with UTF8 strings | |||
<lsl> | |||
integer UTF8Length(string msg) | |||
{ | |||
//Returns the number of BYTES a string will have when converted to UTF8 by communication functions | |||
//Simple and efficient! | |||
//Released to the public domain by kimmie Loveless | |||
integer rNum = llStringLength(msg); | |||
return rNum + ((llStringLength(llEscapeURL(msg)) - rNum)/4); | |||
} | } | ||
</lsl> | </lsl> |
Revision as of 03:53, 13 June 2010
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: integer llStringLength( string str );128 | Function ID |
0.0 | Forced Delay |
10.0 | Energy |
Returns an integer that is the number of characters in str (not counting the null).
• string | str |
Caveats
- The index of the last character is not equal to the string length.
- Character indexs start at zero (the index of the first character is zero).
Examples
<lsl> // assumptions: // object name: LSLWiki // script name: _lslwiki
default {
state_entry() { string HowLongAmI = "123"; integer strlen = llStringLength(HowLongAmI); llOwnerSay( "'" + HowLongAmI + "' has " +(string) strlen + " characters."); // The owner of object LSLWiki will hear // LSLWiki: '123' has 3 characters. }
}
</lsl>
- LSL-2 sees all strings as UTF8
- LSL-Mono sees all string as UTF16
- llStringLength gets the number of characters
- Both UTF8 and UTF16 use multibyte characters
- Some communication functions (i.e. llHTTPResponse) are limited by number of Bytes, and work with UTF8 strings
<lsl> integer UTF8Length(string msg) { //Returns the number of BYTES a string will have when converted to UTF8 by communication functions //Simple and efficient! //Released to the public domain by kimmie Loveless
integer rNum = llStringLength(msg); return rNum + ((llStringLength(llEscapeURL(msg)) - rNum)/4);
}
</lsl>See Also
Functions
• | llGetListLength |