如何在SAS的三种编码间来去自如:wlatin1,euc-cn和utf-8 【1代码篇】
2023-06-13 09:15:16 时间
在日常工作中,常用的SAS语言环境有三个,即英文(wlatin1 western),简体中文(euc-cn),Unicode(utf-8)。这三个语言环境产生的代码文件(.sas)和数据集文件(.sas7b),也将使用相应的编码。
有时候,我们在一个语言环境下使用另一个编码的代码文件、数据集文件,会产生错误或乱码。而且,一旦保存,乱码将保存,不可逆!非常头疼。
那么,如何在不同编码间,自由转换呢?
首先,我们需要掌握两个原理:
- 不同编码涵盖的字符量:utf8>euc-cn>wlatin1。这表明,从utf8往下转码时。只有在字符适用时才成功。
- 不同编码多字节字符占据的字节数量:utf8(3 bytes)>euc-cn(2 bytes)>wlatin1(1 byte)。这表明,从wlatin1往上转码时,只有在变量长度在新编码下足够时,才成功。
我们先来转换代码文件。在下面的代码中,l3变量存在euc-cn不能识别的字符,l2变量存在wlatin1不能识别的字符,l变量的字符,三种编码均能识别。
当我们保存.sas代码文件后会发现,不能识别的字符,会自动忽略。
那么,当字符涵盖在编码中时,是不是就万事大吉了呢?我们接下来试试,用一个编码的SAS软件,来打开另一个编码的代码。
当我们用wlatin1打开另外两个软件时,会发现大部分都变成乱码了。很显然,wlatin1无法识别这些字符。
wlatin1打开其他两种编码的.sas文件:
euc-cn打开其他两种编码的.sas文件:
utf8打开其他两种编码的.sas文件:
由此可见。不论字符能不能识别。只要用sas编辑器,打开其他编码的.sas文件。就会产生乱码。而且不可逆。这是因为文本文档本身会有一个编码。
要想实现代码文件在不同编码间转换。
- 使用复制粘贴法,将代码copy到新的编辑器。
- 使用代码,将,sas文件导入(infile+input),再导出成新编码下的.sas文件(file+put)
相关文章
- Video Converter_硬中华的编码怎样看
- JS常见加密 AES、DES、RSA、MD5、SHAI、HMAC、Base64(编码) - Python/JS实现
- Pycharm 如何自动调整 Python 代码符合 pep8 编码规范
- 【错误记录】IntelliJ IDEA 中 Java 代码中的中文注释报错 ( Menu / File / Settings / Editor / File Encodings 中修改工程编码 )
- Java实现的utf8,gbk,unicode编码相互转换的代码详解编程语言
- Linux操作:从无到有的编码学习之旅(linux操作代码)
- 解决MySQL连接编码问题(mysql连接编码)
- 快来下载Linux代码编辑器,轻松编码!(linux代码编辑器下载)
- 深入探索Linux系统编码设置(设置linux系统编码)
- python 安全编码&代码审计
- HTML URL 编码参考手册
- Oracle中文编码指南(oracle中文怎么编码)
- JScript中使用ADODB.Stream判断文件编码的代码
- PHPbase64+gzinflate压缩编码和解码代码
- php中文和编码判断代码
- 用XMLDOM和ADODB.Stream实现base64编码解码实现代码
- JavaScript中URL编码函数代码
- ExtJS中文乱码之GBK格式编码解决方案及代码
- php验证手机号码(支持归属地查询及编码为UTF8)
- PHP转换文件夹下所有文件编码的实现代码
- Asp.Net中的字符串和HTML十进制编码转换实现代码