You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ensure that UTF8 encoding in the Mono v2 scripting environment correctly handles surrogate pairs and Korean characters, preventing string corruption during native interop.
How is this PR achieving the goal
This PR updates the UTF8 encoding functions to correctly handle surrogate pairs by encoding valid pairs as 4-byte sequences and replacing invalid or missing surrogates with the replacement character (U+FFFD), ensuring that Korean and other Unicode characters are encoded properly.
This PR applies to the following area(s)
ScRT: C#
Successfully tested on
Game builds: ..
Platforms: Windows, Linux
Checklist
Code compiles and has been tested successfully.
Code explains itself well and/or is documented.
My commit message explains what the changes do and what they are for.
No extra compilation warnings are added by these changes.
github-actionsbot
added
ScRT: C#
Issues/PRs related to either C# scripting runtimes
triage
Needs a preliminary assessment to determine the urgency and required action
labels
Mar 20, 2025
Oh, sorry, when I checked it I thought it was unrelated. It seems I didn't investigate well enough, and when I saw that the "Code compiles and has been tested successfully." check was unchecked, I thought you hadn't tested it.
Mono v2 is pending some important changes to fix bugs and implement the new msgpack which includes the definition of the CString type, so that change will no longer be useful when @manups4e PR is merged.
Then I guess it would be better to do another PR in the cfx msgpack repository.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ScRT: C#Issues/PRs related to either C# scripting runtimesstatus:needs planningHard issues that take time as there's no 'one' obvious way.triageNeeds a preliminary assessment to determine the urgency and required action
3 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Goal of this PR
Ensure that UTF8 encoding in the Mono v2 scripting environment correctly handles surrogate pairs and Korean characters, preventing string corruption during native interop.
How is this PR achieving the goal
This PR updates the UTF8 encoding functions to correctly handle surrogate pairs by encoding valid pairs as 4-byte sequences and replacing invalid or missing surrogates with the replacement character (U+FFFD), ensuring that Korean and other Unicode characters are encoded properly.
This PR applies to the following area(s)
ScRT: C#
Successfully tested on
Game builds: ..
Platforms: Windows, Linux
Checklist
Fixes issues
fixs #3263