Pra*_*kla 1 c# delphi delphi-7
任何人都可以告诉我为什么我得到‰符号的不同值?我的Delphi7代码是 -
k := ord('‰'); //k is of type longint; receiving k as 137
Run Code Online (Sandbox Code Playgroud)
我的C#代码是 -
k = (long)('‰');//k is of type long; receiving k as 8240
Run Code Online (Sandbox Code Playgroud)
请给我一个解决方案,我怎样才能在C#中获得相同的价值?因为Delphi代码解决了我的目的.
C#将文本编码为UTF-16.Delphi 7将文本编码为ANSI.差别就在于此.你不是喜欢比较喜欢.
您询问如何获取该字符的ANSI序数值.使用new Encoding(codepage)得到一个Encoding符合你的Delphi ANSI编码实例.您需要知道您正在使用哪个代码页才能执行此操作.然后调用GetBytes该编码实例.
例如,如果您的代码页是1252,那么您可以写:
enc = new Encoding(1252);
byte[] bytes = enc.GetBytes("‰");
Run Code Online (Sandbox Code Playgroud)
或者,如果要使用默认的系统ANSI编码,则可以使用
byte[] bytes = Encoding.Default.GetBytes("‰");
Run Code Online (Sandbox Code Playgroud)
有人想知道你为什么问这个问题.这里回答了很多问题,我想知道你是否正在进行某种加密,散列或编码,并且正在使用一些使用AnsiString变量作为字节数组的Delphi代码作为参考.在这种情况下,虽然Encoding.GetBytes是你要求的,但这不是你需要的.你需要的是停止使用字符串来保存二进制数据.使用字节数组.在Delphi和C#中.
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |