EasyRPG / Player

RPG Maker 2000/2003 and EasyRPG games interpreter
https://easyrpg.org/player/
GNU General Public License v3.0
1.01k stars 193 forks source link

Maniacs - String Variables - String encoding interpretation #3298

Open elsemieni opened 1 day ago

elsemieni commented 1 day ago

Tested with Player Master jenkins-1807. I know Maniacs support is still a very extensive and WIP thing, but I guess it's worth (instead nothing) reporting stuff.

While playing with String Variables I noticed that Maniacs RPG_RT and Player handles String Variables differently when those contains not-so-typical characters. Basically, if a string contains some sort of particular characters Player reports more characters than RPG_RT.

Putting it in an example, if I set T[1]=ß Then I obtain the length of it, RPG_RT will report 1, but Player will report 2 instead, as seen at this image: image

I believe it could be related about unicode interpretation/conversion of characters.

Ghabry commented 1 day ago

Yeah this is our implementation leaking through. Maniac uses the local encoding (ß is 1 byte). We use UTF-8 (ß is 2 bytes).

There is also no easy way to fix this. Keeping the strings in the legacy encoding will break stuff as everything else in our Player is UTF-8 (e.g. assigning an actor name from a string).

For the translation feature it is also expected that everything is UTF-8 (so you can read a redirected text file)