相关疑难解决方法(0)

在 C# 中从 Rust DLL 获取 UTF-8 编码的字符串

我找到了很多关于 C# 中 Rust DLL 实现的 US-ANSI 字符串的信息,但这并不能解决 UTF-8 编码字符串的任何问题。

\n\n

例如,"Br\xc3\xb6tchen"一旦在 C# 中调用,就会产生"Br\xc3\x83\xc2\xb6tchen".

\n\n

\n\n
use std::os::raw::c_char;\nuse std::ffi::CString;\n\n#[no_mangle]\npub extern fn string_test() -> *mut c_char {\n    let c_to_print = CString::new("Br\xc3\xb6tchen")\n        .expect("CString::new failed!");\n    let r = c_to_print;\n    r.into_raw()  \n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

C#

\n\n
[DllImport(@"C:\\Users\\User\\source\\repos\\testlib\\target\\debug\\testlib.dll")]\nprivate static extern IntPtr string_test();\n\npublic static void run()\n{\n    var s = string_test();\n    var res = Marshal.PtrToStringAnsi(s);\n    // var res = Marshal.PtrToStringUni(s);\n    // var res = Marshal.PtrToStringAuto(s);\n    // Are resulting in: ????n\n    Console.WriteLine(res); // prints …
Run Code Online (Sandbox Code Playgroud)

c# string dll utf-8 rust

5
推荐指数
1
解决办法
2087
查看次数

如何在C#中知道字符串编码

我从第三方程序中获取了一个我无法控制的字符串.我的代码片段以HTML格式输出.这在英语中很好用,但在其他语言中它会以有趣的方式显示.例如,西班牙语的口音看起来很有趣,东方语言(即韩语)中的人物看起来很有趣.我很确定我需要做一些编码工作,以便所有语言都能正确显示.

我对编码的理解有点差,所以在发布真正的问题之前,我直观地认为:"如何在C#中将其编码为UTF-8",我希望通过更简单的方式对此事进行更多的了解.的问题.

我的问题是:我如何知道输入字符串的编码类型?在西班牙语中,当我得到一个口音时,它看起来像这样:"Acción",而不是"Acción".这是ANSI还是我在处理什么?

非常感谢提前!

character-encoding c#-4.0

2
推荐指数
1
解决办法
6324
查看次数

标签 统计

c# ×1

c#-4.0 ×1

character-encoding ×1

dll ×1

rust ×1

string ×1

utf-8 ×1