Ignition external communication affected by local language environment

In Ignition, we often encounter communication with external systems. Here is an example of sending WeChat to API in 7.9.9 version.

Here, msg contains Chinese characters. I can receive wechat messages normally, but the received messages are empty or garbled. At this time, the server environment is English Windows system.
I tried to add Chinese language to this server, but it still didn’t work.

However, if this operation is performed on a Chinese Windows system, I can receive a wechat message containing Chinese characters.

Did you restart Ignition on the English server after adding the Chinese language? IIRC, java only picks up languages at startup.

Yes, I’ve tried, but it’s not working.

You may need to file a formal support ticket.

This sounds like a character encoding problem, rather than a font problem.

Try adding a line like wrapper.java.additional.X=-Dfile.encoding=UTF8 to the ignition.conf file located in /Program Files/Inductive Automation/Ignition/data/ - you’ll need to open as an administrator to modify the file, and replace the ‘X’ in the parameter with a valid, sequential integer in the sequence of parameters - somewhere at the end of the block that looks like this:

# Java Additional Parameters

Once you’ve made changes, restart the system.

Java defaults to the operating system’s default charset/encoding - on (English) Windows, that’s ISO-8859-1, not UTF-8. Generally we try to force all of our operations to just use UTF-8 anyways, but especially with a somewhat older version like 7.9.9 there might be some operation that’s not properly forced to UTF-8.

I tried the operation, but it still didn’t work!

This problem seems to have nothing to do with the system language. It will occur in 7.9. X, but not in 8.0. X

Received messages being empty or garbled is not a language problem. It’s an encoding problem. See: Mojibake.

More description of what garbled text you’re seeing, or another screenshot, may help isolate where the problem actually lies.