将字符串从 ASCII 转换为 IBM037 Java 与 Csharp
我正在尝试将简单的 Ascii String 转换为 EBCIDIC ,但是我注意到 java C# 字节值之间的差异。下面是 C# 和 java 示例代码。我已经尝试了几种字符,我发现每种语言的字节码都有很大差异
using System;
using System.Text;
public class Program {
public static void Main(){
string s = "B";
Encoding ebcdic = Encoding.GetEncoding(37);//IBM037 encoding
byte[] asciiBt = Encoding.ASCII.GetBytes(s);
byte[] ebcdicBytes = Encoding.Convert(Encoding.ASCII, ebcdic, asciiBt);
foreach(byte b in ebcdicBytes) {
Console.WriteLine(b);//194 is written to console
}; } }
与类似的java代码进行比较
public class Example{
public static void main(String args[]) throws Exception{
String s = "B";
byte arr[] = s.getBytes("IBM037");
for (byte x: arr){
System.out.println(x);//-62 to console
}}}
有人可以指导我为什么两种不同语言中的相同字符集写入不同的字节值
I am trying to convert A simple Ascii String to EBCIDIC , however i am noticing differences between java C# byte values. Below is C# and java sample code. I have tried several Chars and i see wide difference on each language Byte code
using System;
using System.Text;
public class Program {
public static void Main(){
string s = "B";
Encoding ebcdic = Encoding.GetEncoding(37);//IBM037 encoding
byte[] asciiBt = Encoding.ASCII.GetBytes(s);
byte[] ebcdicBytes = Encoding.Convert(Encoding.ASCII, ebcdic, asciiBt);
foreach(byte b in ebcdicBytes) {
Console.WriteLine(b);//194 is written to console
}; } }
On comparing with similar java Code
public class Example{
public static void main(String args[]) throws Exception{
String s = "B";
byte arr[] = s.getBytes("IBM037");
for (byte x: arr){
System.out.println(x);//-62 to console
}}}
Can some one Guide me why the same Charset in 2 different Languages is Writing Different byte Value
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论