radj307 / ARRCON

Lightweight Source RCON client that works on Windows, macOS, & Linux.
GNU General Public License v3.0
169 stars 11 forks source link

[BUG] Korean text isn't supported #16

Open hahacandy opened 5 months ago

hahacandy commented 5 months ago

# System Information

# Bug Description

When using rcon in palworld, korean is not displayed, and rcon is turned off when words containing korean are input or output.

# Reproduction Steps

radj307 commented 5 months ago

Good catch!

I expect that this is an encoding issue; should be solvable by switching to wchars everywhere.
I will be looking further into this later today.

SelfEnough commented 5 months ago

Chinese also

ntanis-dev commented 5 months ago

Hi there, experiencing the same issue in Palworld where if a player has non-ASCII characters in their name "ShowPlayers" command will just hang indefinitely. Please let us know if we can assist you somehow in debugging this, or testing a dev branch. @radj307

Thank you!

radj307 commented 5 months ago

@ntanis-dev currently working on this, but it'll take a little while.

liasica commented 5 months ago

@ntanis-dev currently working on this, but it'll take a little while.

I think this is something that tools cannot solve. We can only hope that game developer group will be more compatible with non-English or non-Japanese characters.

AustinGYF commented 5 months ago

Good catch!

I expect that this is an encoding issue; should be solvable by switching to wchars everywhere. I will be looking further into this later today.

I suspect this is an inherent characteristic of the RCON protocol. If you have a read in the RCON document, it states that the RCON packet body is encoded in ASCIIZ. However, within the same document, it also linked to a Java library which supports Chinese that non-ASCIIZ.

liasica commented 5 months ago

Good catch! I expect that this is an encoding issue; should be solvable by switching to wchars everywhere. I will be looking further into this later today.

I suspect this is an inherent characteristic of the RCON protocol. If you have a read in the RCON document, it states that the RCON packet body is encoded in ASCIIZ. However, within the same document, it also linked to a Java library which supports Chinese that non-ASCIIZ.

Palworld's RCON support for non-English or non-Japanese characters has bugs.

The RCON documentation says The packet body field is a null-terminated string encoded in ASCII (i.e. ASCIIZ)., NOT ALL body content needs to be ascii encoded.

For example, Simplified Chinese can be output normally, but this problem occurs because the game developer made an error in the coding and packaging calculation method.

RCON SUPPORT ALL LANGUAGES AND ALL CHARACTERS ˘¿˘

radj307 commented 5 months ago

Related: #20

radj307 commented 5 months ago

As @liasica said, the bug is most likely in PalWorld and not ARRCON in this case - at least partially, that is.

While the RCON protocol specifies that the packet body must be ASCII-encoded, there's no reason that the server/client can't correct it once received as any data sent over TCP is just bytes. TCP has no concept of encoding. For instance, if both the server and client support unicode over RCON, unicode characters can absolutely be sent and received.

After some testing that I did regarding #20, I discovered that even when non-ASCII text is forcibly sent via ARRCON, it appears as garbage text in-game.