Wowpedia

We have moved to Warcraft Wiki. Click here for information and the new URL.

READ MORE

Wowpedia
Advertisement


SendChatMessage cannot send all characters (or better call it 'bytes')!
Of course normal text - you would type in a custom channel - is supported, but some characters you might want to send by an addon can cause an error or - even worse - disconnect the player.

These are the characters that appear to be allowed for "msg" in SendChatMessage("msg"{,"type"{,"lang"{,"channel"}}}).

Allowed Characters


(use strchar(charID) to construct a char out of its decimal representation and strbyte("text" [, index]) to do the reverse thing)

ID Printout [by ChatFrame1:AddMessage(strchar(ID))] Note
0 none (terminates string) complete message ignored (not sent)
1 - 9 ? ok
10 new line (line feed) DISCONNECT
11 - 12 ? ok
13 new line (carriage return) ok
14 - 31 ? ok
32 - 123 standard ASCII ok (don't forget the character sequence '%T', it will be replaced by your target's name or "no target" - or a localized equivalent)
124 | ERROR "invalid escape code in chat message"
125 - 126 standard ASCII ok
127 ? ok
128 - 255 ? ERROR "chat message must be UTF-8 text" possible


Notes

I tested each character by sending it to a custom channel named "test". Then I converted the received character to its ID and compared it with the original ID.
Especially on a byte-per-byte basis SendChatMessage has its restrictions (beside the 255 character - better say byte - thing).

Be very careful with splitting a UTF-8 text! You can end up with unexpected UTF-8 errors.

According to UTF-8: the error described above is not a big problem if your addon doesn't split a UTF-8 character into its byte-parts (I had the problem while automatically splitting messages that exceeded the maximum of 255 bytes!)

SendAddonMessage does not have any of those byte problems (except 0000 0000 and forbidden "\t" in prefix).

Advertisement