SAS中文论坛

标题: 问题求助 [打印本页]

作者: shiyiming    时间: 2008-6-25 17:16
标题: 问题求助
比如 String   un="\u9ec4\u5b88\u5ca9";   
在SAS环境中如何把这个unicode串转成中文呢?
作者: shiyiming    时间: 2008-6-26 13:39
标题: Re: 问题求助
data a;
    length un $100;
    un="\u9ec4\u5b88\u5ca9";
    a=input(substr(un,3,4),$hex4.);
    put a;
run;
作者: shiyiming    时间: 2008-6-27 11:12
标题: Re: 问题求助
测了一下,不行哦.
返回的是奇异字符:災
作者: shiyiming    时间: 2008-6-28 11:18
标题: Re: 问题求助
通常我会用java写好转换程序编译成class文件,SAS 9可以直接调用java class,这样简单易用。
好像我发过全角/半角互相转换的类似的需求的帖子的,自己找找。
作者: shiyiming    时间: 2008-7-1 17:02
标题: Re: 问题求助
我重新试了一下,之前的回答确实不对,因此也重新找了一些资料
SAS 9.1 National Language Support(NLS):User’s Guide
里面提到一个函数KCVT用来进行编码转换的,但由于你要转成的码不定,所以得到的结果也不尽相同
另外,是用utf-8还是utf-16抑或utf32进行编码也不晓得,你自己看看吧,应该可以试试的,如我随便试的


data _null_;
        a="5b88"x;
        b=kcvt(a,"UTF-16","big5");
        put a=    b=;
run;

LOG输出是:

60   data a;
61       a="5b88"x;
62       b=kcvt(a,"UTF-16","big5");
63       put a=    b=;
64   run;

a=[?b=矫
NOTE: 数据集 WORK.A 有 1 个观测和 2 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.01 秒
      CPU 时间         0.01 秒
作者: shiyiming    时间: 2008-7-2 09:20
标题: Re: 问题求助
Many Thanks!




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2