The encoding of GetClipboardString method in Glfw is not correct.
- Dominant language
- C#
- Stars
- 5.2k
- Forks
- 477
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 2
Description
# Summary
The encoding of GetClipboardString method in Glfw is not correct, it should be LPUTF8Str.
# Steps to reproduce
- Platform: Desktop (Windows 11 in Simplified Chinese)
- Framework Version: .NET 9
- Package: Silk.NET.Input.Glfw version 2.22.0
- API: /
- API Version: /
1. Copy a Chinese character, then run `Console.WriteLine(inputContext.Keyboards[0].ClipboardText)`, the output is wrong.
2. For example, I copy `你`, the output will be `浣?`
3. Then I run `Encoding.GetEncoding("gb2312").GetString(Encoding.UTF8.GetBytes("你"))`, the result is `浣?` too. (gb2312 is the default encoding of my system.)
4. I set a breakpoint in `SilkMarshal.PtrToString` method and run `Utf8PtrToString(input)`, I get the correct character `你`.
# Comments
In the document of GLFW:
```
const char* glfwGetClipboardString ( GLFWwindow * window )
This function returns the contents of the system clipboard, if it contains or is convertible to a UTF-8 encoded string.
```
So we have to use UTF-8 too.
**__If you know how to fix this issue, please submit a pull request instead!__**
The code of GetClipboardString seems autogenerated, I don't know how to fix it.
Contributor guide
Assessment
This issue has not been assessed yet.