从发送UTF8编码字符串到理解Encoding、CharSet

本文讲述了在C#和VB.Net中如何调用C函数进行UTF-8编码字符串的处理。作者通过研究MSDN文档,明确了String类在.NET中的Unicode编码(UTF-16)基础,探讨了Encoding类在编码转换中的作用,并指出Encoding.UTF8.GetBytes()方法的含义。同时,文章还提及了VB.Net调用API时字符串的处理差异,以及编码、解码、字符集与字符编码的区别,强调了基础理论学习的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要C#和VB.Net调用C函数

HCI_ERR_CODE HCIAPI hci_nlu_recog  ( _MUST_ _IN_ int  nSessionId,  
  _MUST_ _IN_ char *  pvText,  
  _OPT_ _IN_ const char *  pszConfig,  
  _MUST_ _OUT_ NLU_RECOG_RESULT *  psNluRecogResult  
 ) 

进行意图识别操作

参数
nSessionId 会话ID
pvText 要识别的文本数据,UTF-8编码,以'\0'结束
pszConfig 识别参数配置串,ASCII字符串,可为NULL或以'\0'结束
psNluRecogResult 意图识别结果 

由于需要发送UTF-8编码,构造函数使用了String

百度Encoding相关解释,看的比较糊涂

优快云类似问题的讨论结果:

有的尝试使用Encoding解决了,但是原理说不清,以及构造函数里CharSet要不要改也说不清

有的提示传递字节数组或者万能的Marshal

也有新的解释:字符集≠字符编码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值