as400汉字问题

发布于 2022-08-27 17:01:17 字数 160 浏览 7 评论 5

1、如何在400上看一个16进制代表的汉字或者字符是什么?使用什么命令,比如说如何知道X'57D1'代表的是汉字'我'
2、如何在程序中先把一个字串转换成16进制后再处理? 比如说我想在程序中获取汉字'中国'的16进制代码'0E5BCF4D9B0F',并能保存到一个变量里

谢谢大家

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

完美的未来在梦里 2022-09-01 18:14:26

> insert into qtemp/c1 values('OE57D1')
  1 rows inserted in C1 in QTEMP.      
> select c1,hex(c1) from qtemp/c1      
====================================================
                                  Display Data                                 
                                              Data width . . . . . . :      32  
Position to line  . . . . .              Shift to column  . . . . . .         
....+....1....+....2....+....3..                                               
C1          HEX ( C1 )                                                         
  中国人     0E5BCF4D9B54CA0F4040                                                                                         
  我         0E57D10F404040404040                                               
********  End of data  ********                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                       Bottom   
F3=Exit      F12=Cancel      F19=Left      F20=Right      F21=Split

﹏雨一样淡蓝的深情 2022-09-01 15:48:36

简单查询处理:

> create table qtemp/c1(c1 char(10) ccsid 935)
  Table C1 created in QTEMP.            
> insert into qtemp/c1 values(' 中国人 ')  
  1 rows inserted in C1 in QTEMP.         
> select c1,hex(c1) from qtemp/c1         
  SELECT statement run complete.                 

==========================================================================
                                  Display Data                                 
                                              Data width . . . . . . :      32  
Position to line  . . . . .              Shift to column  . . . . . .         
....+....1....+....2....+....3..                                               
C1          HEX ( C1 )                                                         
  中国人     0E5BCF4D9B54CA0F4040                                               
********  End of data  ********                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                       Bottom   
F3=Exit      F12=Cancel      F19=Left      F20=Right      F21=Split

£烟消云散 2022-08-31 20:01:36

1、如何在400上看一个16进制代表的汉字或者字符是什么?使用什么命令,比如说如何知道X'57D1'代表的是汉字'我'

方法举例:进入 STRSQL,16进制前后加 0E 0F
SELECT  X'0E57D10F'  FROM 你的PF
你的PF如果有记录,你就可以看到汉字'我'

2、如何在程序中先把一个字串转换成16进制后再处理? 比如说我想在程序中获取汉字'中国'的16进制代码'0E5BCF4D9B0F',并能保存到一个变量里

在AS/400里,字符串'中国'在内存中就是(C 语言描述):0x0E,0x5B,0xCF,0x4D,0x9B,0x0F
要变成16进制显示的字符串:"0E5BCF4D9B0F",是很简单的,给你一个C程序:
#include <stdio.h>
#include <string.h>

int main(void)
{
  char str1??(??) = {0x0E,0x5B,0xCF,0x4D,0x9B,0x0F,0x00};
  char str2??(80??);
  int  n, i, j, k;

  n = strlen(str1);
  for(i = 0, k = 0; i < n; i++)
  {
    j = sprintf(str2 + k, "%02X", str1??(i??));
    k += j;
  }
  printf("str1: <%s>??/n", str1);
  printf("str2: <%s>??/n", str2);
}

运行结果就是:
str1: < 中国 >
str2: <0E5BCF4D9B0F>

猥︴琐丶欲为 2022-08-31 05:54:01

1)在PC上用文字編輯器看(我是用MADEDIT轉16進位來看)
   DSPPFM ---->F10 可以看到編碼,然後再copy
2)用RPG,有語法,自己找吧

陌伤ぢ 2022-08-29 12:38:10

直接是看不出来的。。需要做转码。。要不16进制没法看!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文