User:Free Portal/Sandbox/LSL Library/SKUTF8ToUnicode: Difference between revisions
Free Portal (talk | contribs) |
Free Portal (talk | contribs) |
||
| Line 2: | Line 2: | ||
== SKUTF8ToUnicode == | == SKUTF8ToUnicode == | ||
<lsl>// SKUTF8ToUnicode | <lsl> | ||
// ---------------------------------------------------------------------------- | |||
// SKUTF8ToUnicode | |||
// @author Free Portal (thedig@hyouk.net) | // @author Free Portal (thedig@hyouk.net) | ||
// ---------------------------------------------------------------------------- | // ---------------------------------------------------------------------------- | ||
Revision as of 10:34, 25 December 2009
Sera korea Viewer Hangul item name decode script.
SKUTF8ToUnicode
<lsl> // ---------------------------------------------------------------------------- // SKUTF8ToUnicode // @author Free Portal (thedig@hyouk.net) // ---------------------------------------------------------------------------- // Dec 20, 2009 v1.0 - SKUTF8ToUnicode, orig code // ----------------------------------------------------------------------------
// ---------------------------------------------------------------------------- // Global Variables: // ---------------------------------------------------------------------------- integer handle;
// ---------------------------------------------------------------------------- // User Defined Functions // ----------------------------------------------------------------------------
// ---------------------------------------------------------------------------- // searchReplace // ---------------------------------------------------------------------------- // @param: // string input // string old // string new // // @return: // string // // @comment: // search and replace word // ---------------------------------------------------------------------------- string searchReplace(string input, string old, string new) {
return llDumpList2String(llParseString2List(input, [old], []), new);
}
// ---------------------------------------------------------------------------- // insertString // ---------------------------------------------------------------------------- // @param: // string source // integer shift // string word // // @return: // string // // @comment: // insert word // ---------------------------------------------------------------------------- string insertString(string source, integer shift, string word) {
string tmp = source; integer index;
for (index = 0; index < llStringLength(source) +
(llStringLength(source) / shift); index+=shift+1)
tmp = llInsertString(tmp, index, word);
return source = tmp;
}
// ---------------------------------------------------------------------------- // SKUTF8ToUnicode // ---------------------------------------------------------------------------- // @param: // string input // // @return: // string // // @comment: // utf-8 hex to unicode // ---------------------------------------------------------------------------- string SKUTF8ToUnicode(string input) {
return llUnescapeURL(
insertString(searchReplace(input, "_SKUTF8_", ""), 2, "%")
);
}
// ---------------------------------------------------------------------------- // Main Script // ---------------------------------------------------------------------------- default {
state_entry() {
handle = llListen(0x00, "", NULL_KEY, "");
llListenControl(handle, FALSE);
}
touch_start(integer total_number) {
llListenControl(handle, TRUE);
llSay (0x00, "Input Sera Korea Viewer item name.");
}
listen(integer channel, string name, key id, string message) {
if (!llSubStringIndex(message, "_SKUTF8_")) {
llSay (0x00, "Item Name " + SKUTF8ToUnicode(message));
llListenControl(handle, FALSE);
}
}
} </lsl>