Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The encoding of GetClipboardString method in Glfw is not correct. #2412

Open
XiaofengdiZhu opened this issue Jan 22, 2025 · 0 comments
Open
Labels
bug Something isn't working

Comments

@XiaofengdiZhu
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: Todo
Development

No branches or pull requests

1 participant