gpt4 book ai didi

C# 更改非 unicode 语言或更改位置

转载 作者:可可西里 更新时间:2023-11-01 11:37:26 33 4
gpt4 key购买 nike

我在套接字上向我的客户端发送了一些文字。这只是文字。但有时我有问题。当我的一些客户在套接字上收到我发送的文本时。他们看到这段文字不正确。非 Unicode 级别的含义不正确。他们有问题 (İ,Ö,Ü,Ğ) 喜欢这个土耳其语字符,所以他们没有收到我的短信。当我将此用户位置信息更改为((关于区域和语言->管理->更改系统区域设置 = 土耳其(在 Windows 7 上))或(更改非 unicode 语言 = 土耳其语))时,问题消失了。

我该如何解决这个问题。我为此阅读了一些文章,它说你不能在代码后面更改它。所以我如何为这个问题创建一个解决方案。

非常感谢最好的问候

最佳答案

当您通过套接字发送字符串时,如何将其转换为字节以及接收方如何将这些字节转换回字符串?您遇到的问题是发送方使用的字符编码与接收方使用的字符编码不匹配。将字符串转换为字节时,您应该做的是使用内置编码类之一,例如 UTF8Encoding

var str = ...; //whatever needs to be sent via socket    
var utf8 = Encoding.UTF8;
var bytes = utf8.GetBytes(str);
socket.Send(bytes)

您可能希望以 block 的形式将输入读入缓冲区并从那里通过套接字发送,但这是一般的想法。另一端的接收方应使用相同的编码将接收到的 byte 转换回 string

See this page on MSDN有关编码的更多信息。

关于C# 更改非 unicode 语言或更改位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7751255/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com