isHarryh/Ark-Pets

[Exception] 启动器大部分中文乱码

Closed this issue · 6 comments

软件版本:v3.0.0
运行环境:Windows 11

问题描述

软件的绝大多数中文乱码,包括搜索栏内的输入。英文没有乱码。
1

程序日志

# *** ArkPets Log - desktop (PID5624) ***
# Created: 2024-02-18 01:30:00,586
# OS: Windows 11 (amd64)
# Java version: 17.0.7
# Working directory: D:\ArkPets

01:30:00,737 [INFO] System: Entering the app of DesktopLauncher
01:30:00,741 [INFO] System: ArkPets version is 3.0.0
01:30:01,766 [INFO] Launcher: Starting
01:30:02,018 [INFO] Launcher: Creating main scene
01:30:02,355 [INFO] SocketServer: Request to start server
01:30:02,379 [ERROR] SocketServer: Server is already running
01:30:02,381 [INFO] SocketClient: Connecting to server on port 8686
01:30:02,382 [INFO] SocketClient: (+)[127.0.0.1:8686] connected
01:30:02,382 [INFO] Launcher: Request to start an existed Launcher
01:30:02,383 [INFO] SocketClient: (x)[127.0.0.1:8686] broken
01:30:02,383 [INFO] SocketClient: (-)[127.0.0.1:8686] closed
01:30:02,413 [INFO] SocketServer: Request to stop server
01:30:02,500 [INFO] System: Exited from DesktopLauncher successfully

复现方法

下载后打开软件此问题就会发生。

右键菜单栏中的中文没有乱码,效果如下:
image

为确认程序在你运行环境的默认字符集,请:

  1. 在启动器选项处,将INFO改为DEBUG。
  2. 重新打开启动器。
  3. 启动任意桌宠(非必需步骤)。
  4. 在此提供新生成的desktop.log日志的内容(如果有core.log也一并提供)。

desktop.log:

# *** ArkPets Log - desktop (PID2700) ***
# Created: 2024-02-23 20:47:26,230
# OS: Windows 11 (amd64)
# Java version: 17.0.7
# Working directory: D:\ArkPets

20:47:26,371 [INFO] System: Entering the app of DesktopLauncher
20:47:26,375 [INFO] System: ArkPets version is 3.0.0
20:47:26,375 [DEBUG] System: Default charset is GBK
20:47:26,933 [INFO] Launcher: Starting
20:47:27,220 [INFO] Launcher: Creating main scene
20:47:27,554 [INFO] SocketServer: Request to start server
20:47:27,566 [INFO] SocketServer: Server is running on port 8686
20:47:27,593 [INFO] HostTray: HostTray icon applied
20:47:27,593 [INFO] Launcher: Loading modules
20:47:27,693 [INFO] Network: Fetching https://arkpets.harryh.cn/p/arkpets/client/api.php?type=queryVersion&cliVer=3.0.0&source=auto to temp/ApiQueryVersionCache
20:47:27,693 [INFO] Launcher: Finished starting
20:47:28,080 [DEBUG] Task: CheckAppUpdateTask scheduled.
20:47:28,081 [DEBUG] Task: CheckAppUpdateTask running.
20:47:28,089 [INFO] ModelManager: Reloading
20:47:28,269 [DEBUG] ModelManager: Initialized model dataset successfully.
20:47:28,412 [DEBUG] ModelManager: Initialized model assets successfully.
20:47:28,619 [INFO] ModelManager: Search "" (1580)
20:47:28,659 [INFO] ModelManager: Reloaded
20:47:30,183 [INFO] Network: Fetched to temp/ApiQueryVersionCache , size: 183
20:47:30,185 [INFO] Task: CheckAppUpdateTask completed.
20:47:30,185 [INFO] Checker: Application version check finished, newest: 3.0.0
20:47:35,087 [INFO] Launcher: Launching models\1032_excu2
20:47:35,087 [DEBUG] Launcher: With args [--debug]
20:47:36,497 [INFO] SocketServer: (+)[127.0.0.1:61479] connected
20:47:36,509 [DEBUG] SocketSession: [127.0.0.1:61479] -> {"operation":"HANDSHAKE_REQUEST","uuid":"eee5d63e-dfa9-483b-8af6-8291019a971b"}
20:47:36,517 [DEBUG] SocketSession: [127.0.0.1:61479] <- {"operation":"HANDSHAKE_RESPONSE","uuid":"eee5d63e-dfa9-483b-8af6-8291019a971b"}
20:47:36,517 [INFO] SocketServer: (-)[127.0.0.1:61479] closed
20:47:36,524 [INFO] SocketServer: (+)[127.0.0.1:61480] connected
20:47:36,529 [DEBUG] SocketSession: [127.0.0.1:61480] -> {"msg":{"bytes":[-54,-91,-44,-68,-53,-51,-44,-31,-56,-53],"encoding":"GBK"},"operation":"LOGIN","uuid":"6f207d70-4025-463a-aa93-5d29caf4ee5c"}

core.log:

# *** ArkPets Log - core (PID33468) ***
# Created: 2024-02-23 20:47:35,280
# OS: Windows 11 (amd64)
# Java version: 17.0.7
# Working directory: D:\ArkPets

20:47:35,419 [INFO] System: Entering the app of EmbeddedLauncher
20:47:35,422 [INFO] System: ArkPets version is 3.0.0
20:47:35,422 [DEBUG] System: Default charset is GBK
20:47:36,128 [INFO] App: Create
20:47:36,129 [INFO] App: Using model asset "models\1032_excu2"
20:47:36,208 [DEBUG] Animation: Apply AnimData {AnimClip "Default" C0 <DEFAULT>}
20:47:36,228 [DEBUG] Animation: Apply AnimData {AnimClip "Interact" C0 <INTERACT>}
20:47:36,240 [DEBUG] Animation: Apply AnimData {AnimClip "Move" C0 <MOVE>}
20:47:36,252 [DEBUG] Animation: Apply AnimData {AnimClip "Relax" C0 <IDLE>}
20:47:36,264 [DEBUG] Animation: Apply AnimData {AnimClip "Sit" C0 <SIT>}
20:47:36,274 [DEBUG] Animation: Apply AnimData {AnimClip "Sleep" C0 <SLEEP>}
20:47:36,285 [INFO] Character: Canvas size 267 * 209
20:47:36,287 [DEBUG] Animation: Apply AnimData {AnimClip "Relax" C0 <IDLE>} Loop
20:47:36,290 [INFO] Animation: Animation stages [AnimStage C0]
20:47:36,311 [INFO] Window: SetForegroundWindow succeeded
20:47:36,523 [INFO] SocketClient: Connecting to server on port 8686
20:47:36,525 [INFO] SocketClient: (+)[127.0.0.1:8686] connected
20:47:36,525 [INFO] MemberTray: Integrated tray service connected
20:47:36,529 [DEBUG] SocketSession: [127.0.0.1:8686] <- {"msg":{"bytes":[-54,-91,-44,-68,-53,-51,-44,-31,-56,-53],"encoding":"GBK"},"operation":"LOGIN","uuid":"6f207d70-4025-463a-aa93-5d29caf4ee5c"}
20:47:36,529 [INFO] App: Render
20:47:36,529 [DEBUG] Window: Resized to 150 * 150
20:47:36,540 [DEBUG] Window: Resized to 333 * 261
20:47:37,944 [DEBUG] Animation: Apply AnimData {AnimClip "Interact" C0 <INTERACT>}
20:47:42,177 [DEBUG] Animation: Apply AnimData {AnimClip "Relax" C0 <IDLE>} Loop
20:48:15,477 [DEBUG] Animation: Apply AnimData {AnimClip "Sit" C0 <SIT>} Loop

暂不清楚乱码原因。观察发现乱码中文字符是由原始字符在UTF8编码中右移约50个单位生成的。考虑字体问题。

请问是否更改了电脑的默认字体?
是否安装了思源黑体(Source Han Sans)或其他可疑字体?
是否更改过系统默认编码?
是否安装过Java运行时或JDK?

将C:\Windows\Fonts中我自行安装的思源黑体字体删除后恢复了正常。
image
经排查,我发现我曾经将两个文件名不同,但同样是思源黑体-Regular的文件安装在了我的系统中。将其中之一删除即可恢复正常。与其他字重的思源黑体无关。可能是无法正确识别两个内容相同但文件名不同的字体文件?
image

问题已解决。已确定是系统字体冲突导致。

此议题关闭。