C# shift-JIS编码日文的十六进制 转成 字符

eastwolf 2012-01-08 06:41:32
shift-JIS编码的日文“こんにちは” 十六进制是“82B182F182C982BF82CD”



用C#代码

怎么把 string aa="82B182F182C982BF82CD";转换显示出日文来;
...全文
1045 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
翻越寒武 2012-10-21
  • 打赏
  • 举报
回复
后来怎么解决的?
eastwolf 2012-01-08
  • 打赏
  • 举报
回复
Encoding encoding = Encoding.GetEncoding("Shift-JIS");
string s = "82B182F182C982BF82CD";
byte[] bytes = new byte[s.Length / 2];
for (int i = 0, j = 0; i < s.Length; i += 4, j += 2)
{
bytes[j] = Convert.ToByte(s.Substring(i, 2), 16);
bytes[j + 1] = Convert.ToByte(s.Substring(i + 2, 2), 16);
}
string temp = encoding.GetString(bytes);
eastwolf 2012-01-08
  • 打赏
  • 举报
回复
没有人知道吗
sugarbelle 2012-01-08
  • 打赏
  • 举报
回复
呀吗跌=什么
mizuho_2006 2012-01-08
  • 打赏
  • 举报
回复
こんにちは=你好
sugarbelle 2012-01-08
  • 打赏
  • 举报
回复
Char.ConvertFromUtf32
看看这里除了utf32还有什么方法.
eastwolf 2012-01-08
  • 打赏
  • 举报
回复
日文是shift-JIS编码
eastwolf 2012-01-08
  • 打赏
  • 举报
回复
日文是shift-JIS编码的
eastwolf 2012-01-08
  • 打赏
  • 举报
回复
string[] aa = new string[] { "82", "B1", "82", "F1", "82", "C9", "82", "BF", "82", "CD" };
string stringValue="";
foreach (String hex in aa)
{
int value = Convert.ToInt32(hex, 16);
stringValue += Char.ConvertFromUtf32(value);
}
label1.Text=stringValue;
我这样写的 显示出现乱码
sugarbelle 2012-01-08
  • 打赏
  • 举报
回复
把aa按两个字符长度切成数组

然后循环替换hex:
int value = Convert.ToInt32(hex, 16);
stringValue += Char.ConvertFromUtf32(value);
eastwolf 2012-01-08
  • 打赏
  • 举报
回复
那怎么完整的把代码出来呢
sugarbelle 2012-01-08
  • 打赏
  • 举报
回复
82B182F182C982BF82CD
每两个字符表示一个十六进制.
hex就是一个十六进制套进去就得到你要的string
sugarbelle 2012-01-08
  • 打赏
  • 举报
回复
int value = Convert.ToInt32(hex, 16);
string stringValue = Char.ConvertFromUtf32(value);

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧