首页
学习
活动
专区
工具
TVP
发布

Stata15:一次性转码,解决中文乱码问题

程序使用说明

ua 命令

适用于 stata15 用户。可以一次性对当前工作路径以及所有子文件夹中的文件进行转码(unicode),以保证中文字符可以正常显示。

安装

- 到这里 -下载和,放置于或文件夹中。(下载地址:https://gitee.com/arlionn/ua )

使用

在 Stata 命令窗口中输入,查看命令介绍和 Stata 范例。参照范例使用即可。

Stata 范例

故事背景(程序撰写过程)

我昨天下午 5 点有个需求:我是从 Stata 13 直接跳到 15 的。可是,Stata 15 的中文编码方案全变了,导致 do-file 和数据文件中的中文字符全是乱码。Stata 提供了一组开头的命令,可以很方便地进行转码。但只能一个文件夹一个文件夹地转。我用了 14 年的 stata,有成百上千个文件夹需要转码! 搜索了半天无果。只好求助涛哥 (李春涛是也)。

涛哥的第一反应是需要编程。我们的共识是需要遍历所有文件夹,记录下来,然后用循环语句进入每一个文件夹,进行转码。

我以为他会停几天再开始做这个工作。又不好催促他,以便搭他的便车。只好自己开始弄。或许他也不好意思搭我的便车,哈哈。

没想到今天晚上写好所有程序和说明文档后分享给他时,他居然也完工了!

看来,有好奇心的人都是一样的亟不可待!

背靠背工作记录

有想法:2017/12/18 17:05

同时完工:2017/12/19 22:28

我们的思路有何差别

整体思路:遍历当前文件夹下的所有子文件夹,对每个文件夹进行转码。

问题的关键:如何遍历所有的子文件夹,并记录这些文件夹的名称。

涛哥的思路:使用如下命令遍历当前工作文件夹下的所有子文件夹,并将他们存入一个文本文件,随后使用命令读入内存:

君哥的思路:使用外部命令实现上述功能,所有子文件夹名称均以返回值的形式存储于内存中。执行过程如下:

然后就可以写一个循环逐个文件夹进行转码了:

最终,君哥的程序长这样:

原始程序和使用方法

涛哥的程序

涛哥的程序尚未封装成文件,但用起来到也方便。直接复制如下代码到一个 Do-file 中,使用命令进入需要转码的文件夹,然后选中如下命令,执行即可(快捷键是):

君哥的程序

已经封装成文件,并配有说明文档。请到Stata连享会-码云-ua项目中(链接为:https://gitee.com/arlionn/ua)下载和文件,放置于或文件夹中。然后在 Stata 命令窗口中输入,查看命令介绍和 Stata 范例。参照范例使用即可。

Stata 范例

结语

生活如此美好!因为有你有我!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180626G1VQE500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券