First of all, the cache you use can't be char. You should use static char to prevent the compiler from optimizing your variables.
Secondly, you must do a good job in the logical relationship between 12864 screen and serial port transmission. You know, it's easy to have garbled characters on the screen of a single chip microcomputer. It is best to bring a data end after the upper computer/super terminal/serial debugging assistant sends the data, and the single chip microcomputer will temporarily close all the interrupts in the screen after receiving the end logo.
Also, the encoding of the Chinese characters you sent should be gbk encoding (windows seems to be the default, mainly because all the Chinese characters supported by 12864 are this encoding. )
Finally, if it doesn't work, it is estimated that you are using 12864 without a Chinese character coding library (of course not ~ ~ if you can display Chinese characters in general).