mmkk, this is an issue related to PHP doing a "substr" on your multi-byte Chinese characters.
$subject_max_length = 26;
substr($returndata[$i]['FORUM_LAST_POST_SUBJECT'], 0, $subject_max_length);
What its basically doing is taking your string of Chinese characters, and displaying as many bytes of them as it can (Chinese characters are composed of three-bytes, IIRC). But when it finishes with the last set of three-bytes, it can only produce 2 of them before sbstr says its reached it max number of bytes. Thus, only two of the required three bytes are displayed. And you are shown an incomplete (broken) character, as a black diamond.
Originally, "mb_substr" should have been used, rather than just "substr." But...
This code has been in UBB.threads
for many years. It was caught about a week ago, and converted to use the "text-overflow:ellipsis;" CSS. So that the processing should happen at the point of output, rather than the point when the data is freshly grabbed from the database.
The non-technical answer
: Its been fixed for the upcoming UBB.threads
Thanks for reporting this for your language. This is a huge help!