.NET连接SAP系统专题:C#调用RFC中文乱码解决办法(十二)
2021/4/23 20:25:36
本文主要是介绍.NET连接SAP系统专题:C#调用RFC中文乱码解决办法(十二),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
上周TW总公司的IT按照董事长的指示,但凡杂项请购单里面内部订单号如果没有开立开发执行单的需做卡控,限制开单。于是TW IT就在系统画面ME51N里面做了用户出口开发,如果系统检测到内部订单没有开发执行单,则提示并不继续往下。因为TW那边的卡控文字说明是繁体的,所以OA调用了RFC申请开立请购单之后就会返回这个错误信息,而且是乱码,如下图:
看到这个乱码我还以为是出了什么异常,因为系统抛出异常类是:RfcCommunicationException,到处找原因,搞得满头包。后面只好到正式环境试着用OA的数据开立请购单试试,结果系统提示开发执行单不存在,这才知道原因所在,因此对这个乱码感到很费劲,于是解决之。
我们在调用RFC前的配置信息里面可以规定编码,如下红字所示:
public class MyBackendConfig : IDestinationConfiguration { public RfcConfigParameters GetParameters(String destinationName) { if ("PRD_000".Equals(destinationName)) { RfcConfigParameters parms = new RfcConfigParameters(); parms.Add(RfcConfigParameters.AppServerHost, "192.168.1.3"); parms.Add(RfcConfigParameters.SystemNumber, "00"); parms.Add(RfcConfigParameters.User, "MENGXIN"); parms.Add(RfcConfigParameters.Password, "×××"); parms.Add(RfcConfigParameters.Client, "888"); parms.Add(RfcConfigParameters.Language, "ZH"); parms.Add(RfcConfigParameters.PoolSize, "5"); parms.Add(RfcConfigParameters.MaxPoolSize, "10"); parms.Add(RfcConfigParameters.IdleTimeout, "60"); parms.Add(RfcConfigParameters.Codepage, "8300"); return parms; } else return null; } public bool ChangeEventsSupported() { return false; } public event RfcDestinationManager.ConfigurationChangeHandler ConfigurationChanged; }
这样规定了这个编码为8300(繁体),于是系统正确提示了信息:
关于这个Codepage的代码含义,如下表:
至此,乱码问题完全解决~
PS:.NET连接SAP系统专题 就到此结束了。欢迎各位朋友一起交流指正...
这篇关于.NET连接SAP系统专题:C#调用RFC中文乱码解决办法(十二)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具