+
From REALbasicWiki
The "+" operator takes two arguments, and is overloaded to accept either numeric or String operands.
[edit] Numeric
[edit] String
For String operands, + returns the concatenation of the two strings. For example, "a" + "b" returns the string "ab".
Because REALbasic strings are immutable, + always returns a new string, except perhaps in certain trivial cases. In situations requiring many concatenations, this is well-known to be a performance bottleneck. In such situations, you can use the Join or JoinB operators for significantly better performance.
[edit] Encoding Issues
How the encoding of the return value is determined does not appear to be documented by Real Software. When the operands have the same encoding, the return value appears to have the same encoding. When at least one operand has nil encoding, then the return value appears to have nil encoding. These are the only reasonable possibilities for these cases.
When the operands have non-nil but different encodings, whatever algorithm is used to determine the encoding of the return value appears to favor unicode when possible. But probably you should not leave it to the runtime to determine an encoding for you, but instead convert encodings so that the operands have the same encoding before concatenation.
