注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

零售创新,创新那些事儿,SPSS,VBA

零售创新

 
 
 

日志

 
 
关于我

新浪微博,零售创新 研究经理,数据分析师 希望和市场研究和零售业的同事共同进步! 本博客发表的都是免费或试用的资料,如果有版权问题请发邮件wangli12a@163.com联系删除。 spss excel vba blog

网易考拉推荐

解决SAS在中文环境下显示乱码的问题  

2013-08-30 10:24:38|  分类: SAS学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
解决SAS在中文环境下显示乱码的问题

SAS在中文操作系统下,采用默认方式在SAS Output中输出时我们会发现不少乱码。例如显示“傻傻傻傻傻傻傻傻傻傻傻傻” 来分隔数据。这是由于SAS采用了英文制表符的缘故。可以通过修改SAS配置文件来避免这种情况。

解决方法
打开SAS的配置文件。(V6.12是config.sas,V8是SASV8.cfg,都在SAS的安装路径下。)您会发现有以下几行: 
/* This is the OEM character set */
/* -FORMCHAR "衬诼棵糯懒?=|-/*" */
/* This is the ANSI character set (for SAS Monospace font and ANSI Sasfont) */
-FORMCHAR "們剠唶垑妺?=|-/*" 
/* This is the ANSI character set */
/*-FORMCHAR "|----|+|---+=|-/*" */
可见默认状态下,SAS并不是使用ANSI标准字符集作为制表符。我们只需把它原来的-FORMCHAR语句注释掉。再起用标准ANSI字符集作为制表符即可。改动如下:
/* This is the OEM character set */
/* -FORMCHAR "衬诼棵糯懒?=|-/*" */
/* This is the ANSI character set (for SAS Monospace font and ANSI Sasfont) */
/* -FORMCHAR "們剠唶垑妺?=|-/*" */
/* This is the ANSI character set */
-FORMCHAR "|----|+|---+=|-/*" 
改完后存盘,重起SAS系统,新的设置即可生效。由此我们甚至可以使用GB2323字集中提供的专用制表符来美化我们的输出。

解决SAS中的输出编码问题

SAS的输出结果有可能是乱码,解决这个问题的办法有几种.

一种是将输出结果导出至html的形式输出,在html中可自由切换编码方式,由这曲线方式可解决编码问题.

SAS->tools->options->Preferences->results->Html勾上,以后自动将结果输出为Html的形式.

将数据集输出为html语言

ods html file=’c:"cargorev.html’

 proc print data =Tmpl.Cargorea;

run;

ods html Close;

一种是安装时安装SAS支持双字节版了.

改变数据集的编码形式

libname lib 'mult' outencoding=utf8;

data lib.jpn;

length x $ 20 ;

x = '日本語' ;

run;

具体可看Multilingual Computing with the 9.1 SAS Unicode Server文档.

 上面的贴过来时有点乱,我整理了一下,我遇到的情况只改了Tip5

http://www.cmfu.com/showbook.asp?Bl_id=60008 forcode:找到了这篇文章,按说明修改之后重启sas,就可以了:

本文列出了SAS软件在安装过程中的一些常见问题。测试OS是Windows操作系统,SAS软件版本V8.2,希望对于使用SAS软件的新手们有所帮助。


Tip1:关于授权文件。SAS软件的安装授权文件在V8.2以下版本使用sas作为扩展名,即:

setinit.sas。整个安装过程采用"先安装,后验证"的方式。如果需要更新授权文件,可以至Windows开始菜单->程序->The SAS System,点击"Update SAS V8 Authorization Code"快捷方式,然后按照向导进行更新。安装文件在V8.2版本使用sss作为扩展名,即:setinit.sss。整个安装过程采用"先验证,后安装"的方式.安装前期,必须先指定授权文件的位置。如果需要更新授权文件,右击该授权文件(即右击setinit.sss文件),在弹出菜单中,点击"Apply authorization code to SAS V8"即可。当然这种方式适用于新旧授权文件中的可用模块没有变动的情况。由于V8.2采用"先验证,后安装"的方式,如果新授权文件含有新的可使用模块时,就需要重新安装SAS软件。安装过程中,SAS软件会提示:是向已安装系统增添模块,或根据新的授权文件,重新安装SAS软件。如果没有特别的情况,这两种选择的最终效果一致。 


Tip2:关于语言选择。SAS软件V8.2版本在多语言环境的安装过程中,在Language Selection界面中会让你选择"English"或"English With DBCS Suport"。DBCS是"Double Byte Characters Support"的缩写,主要针对亚洲双字节语言的支持,建议国内用户使用第二个选项。不过即便你选择"English With DBCS Support",SAS软件对中文的支持效果依然不是很好。 


Tip3:解决Enhanced Editor未被安装问题。Enhanced Editor是SAS软件的还算方便的程序编辑器。一些SAS软件的使用者反映V8.1版本安装完成后,却没有安装Enhanced Editor。遇到这种情况,可以在V8.1的Installation Disk

2中的Bundles目录下的Eeditor目录中找到Enhanced Editor的安装程序,当然如果还有些其他的一些功能没有被安装,你可以至Bundles的目录下查找。V8.2一般很少出现这种情况,如果出现了,你 可以在V8.2安装套盘的Shared omponents Disk中找到Bundles目录,其中包含Enhanced Editor的安装程序目录。 


Tip4:解决Help的Html显示问题。一些SAS软件的使用者反映V8系列安装后,Help文件呈Html格式。这是SAS

软件的一个Bug。当然,SAS软件还有很多其他方面的Bug,有的甚至可能导致计算结果错误,有的可能导致你在是使用过程中常见的"Read Access Violence..."问题,强烈建议你去 http://ftp.sas.com/techsup/download/hotfix/hotfix.html,下载匹配于你所使用操作系统、SAS软件版本及使用模块的补丁。目前Windows环境下,SAS公司官方技术支持网站support.sas.com上已提供的V8.2版本所有模块的补丁共有60多个,如果你使用的SAS软件的授权模块很多,那就一个个装吧!这里需要说明的是,同一版本新发售的SAS软件安装盘中没有加上补丁,你仍需要至以上补丁网址下载后安装。 


Tip5:解决分割线的正常显示问题。安装完成后,SAS软件Output窗口中在显示输出结果时,分割线变成连续的'傻'字。此时你需要修改SAS软件的配置文件SASV8.cfg,其初始位置一般位于:目标盘Program FilesSAS InstituteSASV8目录中。将SASV8.cfg的字符集设置(character set)部分修改如下: 

/* This is the OEM character set */ 

/* -FORMCHAR "衬诼棵糯懒?=|-/*" */ 

/* This is the ANSI character set (for SAS Monospace font and ANSI Sasfont) */ 

/* -FORMCHAR "們剠唶垑妺?=|-/*" */ 

/* This is the ANSI character set */ 

-FORMCHAR "|----|+|---+=|-/*" 


Tip6:设置OnlineDoc。SAS软件最权威且方便获取的软件使用资料是SAS Online Do*****ent,该资料随SAS软件安装盘同时发售,称为OnlineDoc Disk。当你持有该张光盘时,你可以使用IE浏览器打开盘中onldoc.html文件直接浏览该套资料的内容。你还可以将Onlinedoc Disk上的内容直接复制至硬盘中,并设置以上SASV8.cfg文件中相关Online Help部分内容:(以下为示例设置) 

/* Default locations for online help */ 

-DOCLOC file://E:SAS_OnlineDocV8sashtmlonldoc.htm 

如此,你可以在SAS软件help菜单->Books and Traning项,点击SAS onlineDoc,直接打开Online

Do*****ent。当然如果网络使用比较方便的话,你可以使用SAS公司提供的网络版的OnlineDoc,具体位置如下: 

V8 onlineDoc:http://v8doc.sas.com/ 

V9 onlineDoc:http://v9doc.sas.com/ 

以上网址的使用用户名为onlinedoc,密码为sas。 


Tip7:设置字体。SAS软件的初始字体,对于国内用户,使用起来并不是很方便(这里主要指的是Log窗口和Output窗口中的显示字体。Enhanced Editor窗口中的字体,在Tools菜单->Options项下,点击Enhanced Editor,将出现Enhanced Editor的设置窗口,其中包含字体设置,默认为Courier New),你可以至Tools菜单->options项,点击fonts,选择你喜欢的字体,一般建议使用sasfont或新宋体(字符集:Chinese_GB2312)。注意进行该项设置时,SAS软件的当前活动窗口不能是Enhanced Editor窗口,你可以将Log窗口或Output窗口作为当前活动窗口,否则options项下没有fonts项。设置完成后,还有一个关键的步骤是至Tools菜单->options项,点击preference,在出现的设置窗口中的'General'Tab页中,选中Save

setting on exit,确定后重启SAS。重启后务必把Save setting on exit取消掉。 


Tip8:设置SAS软件默认文件打开位置和启动文件。右击SAS的启动快捷方式,点击属性项,在出现窗口中选中'快捷方式'Tab页,在'目标'输入框中设置如下:(以下为示例设置) "DTonguerogram FilesSAS InstituteSASV8sas.exe" -CONFIG "dTonguerogram FilesSAS InstituteSASV8SASV8.CFG" -sasInitialFolder "e:sas" –autoexec"e:sasauto.sas" 以上配置含义是:SAS软件的启动以dTonguerogram FilesSAS InstituteSASV8SASV8.CFG为配置文件,默认文件打开位置是e:sas,启动时同时执行e:sas目录下auto.sas文件。 


Tip9:关于support.sas.com。这是SAS公司官方技术支持网站,非常好。建议仔细研究该网站的内部结构,你将会

有很多的惊喜发现。我就不说明什么了,我相信我的不说明会引起你的更多兴趣。同样还有http://groups.google.com/groups?hl=zh-CN&lr=&ie=UTF-8&oe=UTF-8&group=comp.soft-sys.sas。全球最大SAS技术论坛的google版本。上述网站或网址,不仅仅可以解决SAS的安装问题.



修改SASV9.CFG使SAS9.2英文版正常处理中文


 我们在使用英文版的SAS时,可能会出现中文乱码的情况,例如里面的中文全部变成了问号。
    解决方法如下:
    以9.2版本为例,打开 ~\SAS\SASFoundation\9.2\nls\en\SASV9.CFG
    1.搜索并找到-SET SASSAML !sasext0\share\sasmacro\
      在后面加上以下3行
-DBCSLANG CHINESE
-DBCS
-DBCSTYPE PCMS
    2.找到-PATH          (
      在其下一行插入
                "!sasext0\dbcs\sasexe"
    保存后问题就解决了。



装完SAS9.1.3双版后,中文版可以正常处理中文,但是英文版对中文数据显示的都是问号,output窗口和viewtable窗口都是这样。;上网搜了一下,提示得设置dbcs(Tools|Options|System |Environment contrl | Language contrl | Dbcs),观察了一下en、ch版的dbcs确实不一样,但都是灰色不可更改。于是到目录..\SAS9.1\nls\里,有两个文件夹en、zh分别对应了英文、中文版,且有各自的SASV9.CFG,在zh的SASV9.CFG里搜索dbcs,共有4处,把它们复制到en的SASV9.CFG里对应的地方(en初始的SASV9.CFG里没有dbcs),重新启动en版,可以正常显示中文,尚未发现引起其他问题。


中文版的sasv9.cfg文件 如下


/* set default locations                                        */
-TRAINLOC ""

/* set the default fileref for the PARMCARDS= option            */
-SET FT15F001 'FT15F001.DAT'

/*---------------------------------------------------------------\
| SAS System FORMCHARS, used by pressing ALT then the decimal    |
| number for the Extended ASCII character.                       |
\---------------------------------------------------------------*/

/* This is the ANSI character set (for SAS Monospace font and ANSI Sasfont) */
-FORMCHAR '7c2d2d2d2d7c2b7c2d2d2d2b3d7c2d2f5c3c3e2a'x

/*---------------------------------------------------------------\
| WARNING:  INSTALL Application edits below this line.  User     |
|           options should be added above this box comment.      |
|           INSTALL Application maintains and modifies the       |
|           following options; -SASAUTOS, -SASHELP, -SASMSG,     |
|           -PATH, and -MAPS.  It also maintains and modifies    |
|           the following CONFIG variables with the -SET option; |
|           INSTALL, USAGE, LIBRARY, SAMPSIO, SAMPSRC, SASCBT,   |
|           and SASEXT01-SASEXT50.  It preserves all lines above |
|           the line containing 'DO NOT EDIT BELOW THIS LINE'.   |
\---------------------------------------------------------------*/

/* DO NOT EDIT BELOW THIS LINE - INSTALL Application edits below this line */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-SET SASROOT "D:\Programs\SAS\SASFoundation\9.3"

/*  Options used when SAS is accessing a JVM for JNI processing  */
-JREOPTIONS=(

        -DPFS_TEMPLATE=!SASROOT\tkjava\sasmisc\qrpfstpt.xml
        -Djava.class.path=D:\Programs\SAS\SASVER~1\eclipse\plugins\SASLAU~1.JAR
        -Djava.security.auth.login.config=!SASROOT\tkjava\sasmisc\sas.login.config
        -Djava.security.policy=!SASROOT\tkjava\sasmisc\sas.policy
        -Djava.system.class.loader=com.sas.app.AppClassLoader
        -Dlog4j.configuration=file:/D:/Programs/SAS/SASFoundation/9.3/tkjava/sasmisc/sas.log4j.properties
        -Dsas.app.class.path=D:\Programs\SAS\SASVER~1\eclipse\plugins\tkjava.jar
        -Dsas.ext.config=!SASROOT\tkjava\sasmisc\sas.java.ext.config
        -Dsas.jre.libjvm=C:\PROGRA~1\Java\JRE16~1.0_2\bin\client\jvm.dll
        -Dtkj.app.launch.config=D:\Programs\SAS\SASVER~1\picklist
        -Xms128m
        -Xmx128m
        )
-HELPLOC (

        "!SASROOT\core\help"
        "!MYSASFILES\classdoc"
        )
-RESOURCESLOC (

        "!SASROOT\nls\zh\resource"
        "!SASROOT\core\resource"
        )
-SET SASAUTOS (
        
        "!SASROOT\core\sasmacro"
        "!SASROOT\accelmva\sasmacro"
        "!SASROOT\assist\sasmacro"
        "!SASROOT\dmscore\sasmacro"
        "!SASROOT\eis\sasmacro"
        "!SASROOT\ets\sasmacro"
        "!SASROOT\gis\sasmacro"
        "!SASROOT\graph\sasmacro"
        "!SASROOT\iml\sasmacro"
        "!SASROOT\inttech\sasmacro"
        "!SASROOT\or\sasmacro"
        "!SASROOT\qc\sasmacro"
        "!SASROOT\share\sasmacro"
        "!SASROOT\stat\sasmacro"
        )
-SASHELP (

        "!SASCFG\SASCFG"
        "!SASROOT\nls\zh\sashelp"
        "!SASROOT\core\sashelp"
        "!SASROOT\af\sashelp"
        "!SASROOT\assist\sashelp"
        "!SASROOT\connect\sashelp"
        "!SASROOT\eis\sashelp"
        "!SASROOT\ets\sashelp"
        "!SASROOT\gis\sashelp"
        "!SASROOT\graph\sashelp"
        "!SASROOT\iml\sashelp"
        "!SASROOT\insight\sashelp"
        "!SASROOT\inttech\sashelp"
        "!SASROOT\lab\sashelp"
        "!SASROOT\or\sashelp"
        "!SASROOT\qc\sashelp"
        "!SASROOT\stat\sashelp"
        )
-MSG (

        "!SASROOT\nls\zh\sasmsg"
        "!SASROOT\core\sasmsg"
        "!SASROOT\accelmva\sasmsg"
        "!SASROOT\access\sasmsg"
        "!SASROOT\af\sasmsg"
        "!SASROOT\dmscore\sasmsg"
        "!SASROOT\ets\sasmsg"
        "!SASROOT\etscomp\sasmsg"
        "!SASROOT\gis\sasmsg"
        "!SASROOT\graph\sasmsg"
        "!SASROOT\iml\sasmsg"
        "!SASROOT\insight\sasmsg"
        "!SASROOT\inttech\sasmsg"
        "!SASROOT\lab\sasmsg"
        "!SASROOT\or\sasmsg"
        "!SASROOT\qc\sasmsg"
        "!SASROOT\spdsclient\sasmsg"
        "!SASROOT\stat\sasmsg"
        )
-SET SAMPSIO (
        
        "!SASROOT\core\sample"
        "!SASROOT\access\sample"
        "!SASROOT\accesssample\sample"
        "!SASROOT\connect\sample"
        "!SASROOT\eis\sample"
        "!SASROOT\ets\sample"
        "!SASROOT\gis\sample"
        "!SASROOT\graph\sample"
        "!SASROOT\iml\sample"
        "!SASROOT\insight\sample"
        "!SASROOT\inttech\sample"
        "!SASROOT\or\sample"
        "!SASROOT\qc\sample"
        "!SASROOT\share\sample"
        "!SASROOT\stat\sample"
        )
-SET SAMPSRC (
        
        "!SASROOT\core\sample"
        "!SASROOT\access\sample"
        "!SASROOT\accesssample\sample"
        "!SASROOT\connect\sample"
        "!SASROOT\eis\sample"
        "!SASROOT\ets\sample"
        "!SASROOT\gis\sample"
        "!SASROOT\graph\sample"
        "!SASROOT\iml\sample"
        "!SASROOT\insight\sample"
        "!SASROOT\inttech\sample"
        "!SASROOT\or\sample"
        "!SASROOT\qc\sample"
        "!SASROOT\share\sample"
        "!SASROOT\stat\sample"
        )
-SET INSTALL (
        
        )
-PATH (

        "!SASROOT\dbcs\sasexe"
        "!SASROOT\core\sasexe"
        "!SASROOT\aacomp\sasexe"
        "!SASROOT\accelmva\sasexe"
        "!SASROOT\access\sasexe"
        "!SASROOT\af\sasexe"
        "!SASROOT\assist\sasexe"
        "!SASROOT\connect\sasexe"
        "!SASROOT\dmscore\sasexe"
        "!SASROOT\eis\sasexe"
        "!SASROOT\ets\sasexe"
        "!SASROOT\etscomp\sasexe"
        "!SASROOT\fsp\sasexe"
        "!SASROOT\gis\sasexe"
        "!SASROOT\graph\sasexe"
        "!SASROOT\iml\sasexe"
        "!SASROOT\insight\sasexe"
        "!SASROOT\inttech\sasexe"
        "!SASROOT\lab\sasexe"
        "!SASROOT\or\sasexe"
        "!SASROOT\qc\sasexe"
        "!SASROOT\securwin\sasexe"
        "!SASROOT\share\sasexe"
        "!SASROOT\spdsclient\sasexe"
        "!SASROOT\stat\sasexe"
        "!SASROOT\statcomp\sasexe"
        )
-FONTSLOC "D:\Programs\SAS\ReportFontsforClients\9.3"
-TEXTURELOC !sasroot\common\textures
-SET MYSASFILES "?CSIDL_PERSONAL\My SAS Files\9.3"
-SASUSER "?CSIDL_PERSONAL\My SAS Files\9.3"
-WORK "!TEMP\SAS Temporary Files"
-MEMSIZE 2G
-SORTSIZE 256M
-SET SASCFG "D:\Programs\SAS\SASFoundation\9.3\nls\zh"
-DBCS 
-LOCALE zh_CN
-SET SASAML !SASROOT\share\sasmacro
-SET EISIMAGE !SASROOT\eis\sample
-SASSCRIPT (

        "D:\Programs\SAS\SASFoundation\9.3\connect\saslink"
        )
-MAPS !SASROOT\maps
-MAPSGFK !SASROOT\mapsgfk
-MAPSSAS !SASROOT\maps
-APPLETLOC "D:\Programs\SAS\SASGraphJavaApplets\9.3"

  评论这张
 
阅读(4714)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017