VC ++从流中解码变音符号

马文克

我有一个小型应用程序客户端/服务器应用程序。客户端应用(C#),服务器端(VC ++)。我的应用程序将使用流将任何字符发送到服务器端;英文字符可以正常工作,除非非英语。VC ++使用CString从流中接受此数据。我修复了一些变音符号,使其在收到时可以正确读取,但其中一些不起作用。客户端在发送之前使用UnicodeEncoding()对该字符进行了编码。它在É,À,È,Ù,Â,Ê,Î,Ô,Û,Ë,Ë,Ï,Ö,Ü上可以正常工作,但Ÿ(此字符在服务器端将读为x_)和土耳其语字符读取不正确。

问题:

  • 我应该在服务器端添加什么来处理诸如中文/俄语/土耳其语..etc之类的变音符号?
  • 在客户端;UnicodeEncoding()是否足以对那些变音符号进行正确编码?还是其他字符应采用不同的编码?

样例代码将有很大的帮助。

谢谢。

马文克

万一有人偶然遇到同样的问题。

这是我解决问题的方法。在客户端

if (IsUnicode(str))
{
   writer.Write((uint)str.Length + 1);
   writer.Write(Encoding.Unicode.GetBytes(str));
}

private bool IsUnicode(string text)
    {
        if (string.IsNullOrEmpty(text))
            return false;

        foreach (char c in text)
        {
            if (c > 0x7F)
                return true;
        }
        return false;
    }

在服务器端使用带有CP_UTF8参数的CW2A转换字符串

CStringA str = CW2A(m_CString, CP_UTF8);
m_CString.Format(_T("%s"), str);            

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

解码URL中的变音符号(或复合与组合编码)

来自分类Dev

解码URL中的变音符号(或复合与组合编码)

来自分类Dev

VC ++中的文字类型

来自分类Dev

VC ++中的资源ID

来自分类Dev

API 请求中的变音符号编码

来自分类Dev

如何从字符串中删除变音符号(变音符)?

来自分类Dev

MinGw VC DLL中C ++符号的未定义符号

来自分类Dev

从python中的文本中仅删除特定的变音符号

来自分类Dev

RedirectToAction()打破变音符号

来自分类Dev

不能写变音符号

来自分类Dev

Java删除变音符号

来自分类Dev

在索引时间将变音符号删除到Solr中

来自分类Dev

用变音符号在R中制表字符

来自分类Dev

用德语变音符号在NexusDB中创建表?

来自分类Dev

通过XSLT删除整个XML文档中的变音符号

来自分类Dev

如何在C ++中实现变音符号?

来自分类Dev

在C#中读取包含变音符号的Json文件

来自分类Dev

Wordpress链接中的unicode变音符号错误

来自分类Dev

git分支名称中的Powershell和德语变音符号

来自分类Dev

阿拉伯变音符号在Elasticsearch中无视

来自分类Dev

在索引时间将变音符号删除到Solr中

来自分类Dev

在C#中读取包含变音符号的Json文件

来自分类Dev

如何正确显示groff中的波兰变音符号?

来自分类Dev

Wordpress链接中的unicode变音符号错误

来自分类常见问题

带有重音符号的文件夹中的Java安装(变音符号)

来自分类Dev

如何从字符串中删除变音符号(重音符号)?

来自分类Dev

VC中的egg_info目录?

来自分类Dev

VC 2013和2015中的Lambda Deleter

来自分类Dev

是否可以在VC ++ / CLI中覆盖IEnumerable?