作者:连玉君 (知乎 | 主页 | 码云)

Note: 助教招聘信息请进入「课程主页」查看。因果推断-内生性 专题 ⌚ 2020.11.12-15 主讲:王存同 (中央财经大学);司继春(上海对外经贸大学)空间计量 专题 ⌚ 2020.12.10-13 主讲:杨海生 (中山大学);范巧 (兰州大学)

程序使用说明

ua 命令

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

安装

- 到这里 - 下载 ua.ado 和 ua.hlp,放置于 D:\stata15\ado\base\u 或 D:\stata15\ado\plus\u 文件夹中。(下载地址:https://gitee.com/arlionn/ua )

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

Stata 范例

* Change current working directory (CWD)

. cd D:\stata15\ado\personal\mypaper

* Unicode all .dta files in CWD and files in sub-directories

. ua: unicode encoding set gb18030

. ua: unicode translate *.dta

* Unicode all files (.do, .ado, .dta, .hlp, etc.) in CWD and files in sub-directories

. ua: unicode encoding set gb18030

. ua: unicode translate *

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

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

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

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

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

背靠背工作记录

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

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

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

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

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

!dir /B /S /ad >> output.txt

infix strL v 1-2000 using "output.txt"

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

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

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

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

原始程序和使用方法

涛哥的程序

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

cd "D:\stata15\ado\personal\mypaper" //自行修改

!dir /B /S /ad >> output.txt

clear

unicode analyze output.txt

unicode encoding set gb18030

unicode translate "output.txt", transutf8

unicode erasebackups, badidea

infix strL v 1-2000 using "output.txt"

levelsof v ,local(urllist)

! del output.txt

clear

unicode translate * , transutf8

foreach c of local urllist{

clear

cd `"`c'"'

unicode encoding set gb18030

cap unicode translate * , transutf8

}

君哥的程序

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

Stata 范例

* 进入需要转码的文件夹

. cd D:\stata15\ado\personal\mypaper

* 对当前文件夹及子文件夹中的所有 .dta 文件转码

. ua: unicode encoding set gb18030

. ua: unicode translate *.dta

* 对所有类型的文件转码

. ua: unicode encoding set gb18030

. ua: unicode translate *

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

精选课程支持回看,课程不受直播时间限制,可以随时购买观看。游万海,Stata: 分位数回归,4.21 日 19:00-21:00,直播.

司继春, 游万海, 文本分析与爬虫:专题视频,四天直播回放

连玉君,Stata: 实证研究设计,2.4小时,模型设定、稳健性、内生性

连玉君,Stata: 动态面板模型,2.5小时,知其然,知其所以然

相关课程部分直播课

课程一览支持回看,所有课程可以随时购买观看。Note: 部分课程的资料,PPT 等可以前往关于我们Stata 连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。

公众号推文分类:计量专题 | 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。连享会小程序:扫一扫,看推文,看视频……扫码加入连享会微信群,提问交流更方便

stata15中文乱码_Stata15:一次性转码,解决中文乱码问题相关推荐

  1. java 中文乱码过滤器_JAVA中文乱码过滤器(用java过滤器解决中文乱码)V0422 整理版...

    JAVA中文乱码过滤器(用java过滤器解决中文乱码)V0422 整理版 不用再担心java中文乱码问题,一步到位,一次性解决.更方便更快捷. web-xml配置 EncodingFilter com ...

  2. Qt中文乱码--使用Unicode万国码解决

    需求 Qt界面开发过程中可能使用到多个语言的字符.需要解决乱码问题. API介绍 Qt 提供类:QTextCodec Class,用来支持各种编码协议,支持: ISO 2022-JP ISO 8859 ...

  3. 使用pdfBox实现pdf转图片出现中文方块乱码 简单修改源码解决

    参考文章 问题排查:使用pdfbox将pdf转image时STSong-Light字体中文乱码 pdfbox版本是2.0 日志中打印出类似这样的日志(例:Using fallback XXX for ...

  4. java输出的汉字变成乱码_Java Web项目中解决中文乱码方法总结

    一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...

  5. Python 技术篇 - 修改源码解决中文主机名导致的flask、socket服务起不来问题: ‘utf-8‘ codec can‘t decode byte 0xc0 in position...

    由于主机名为中文导致的 flask 服务起不来,报错如下: File "D:\work\python3.9_64\lib\socket.py", line 791, in getf ...

  6. Java中文与Base64互转(解决中文乱码的问题)

    最近线上出现一个问题,前后端交互时,某些情况下,会有中文乱码的问题. 解决思路: 1. 在后端先将中文转为 Base64 后再传递到前端(此中文在前端不做显示处理). 2. 前端将参数再传递回后端时, ...

  7. qt mysql乱码_Qt连接mysql 并且 解决中文乱码问题

    课题需要做一个数据展示程序, 我就想到了Qt, 连接mysql的过程中是挺简单的, 但是还是有两个坑... 一号坑: Qt 和 mysql 位数要相同!!! 我的就是不相同, 卸了mysql重装的. ...

  8. java pdf中文乱码_java生成pdf以及解决中文中文乱码问题

    itext版本:5.4.0 其中extrajars中有支持中文的itext-asian.jar. 像工程中导入itextpdf-5.4.0以及itext-asian.jar即可支持中文. 示例代码如下 ...

  9. win10乱码了怎么办一招解决windows乱码问题百度经验_TIA Portal博途常见的15大问题汇总...

    1.我的系统能不能装博途TIA Portal? 答:https://support.industry.siemens.com/kompatool/pages/main/index.jsf? 官方在线查 ...

  10. python爬虫文字全是乱码_pythone爬虫编码自适应 解决网页乱码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #coding=utf-8 import chardet #字符集检测 import urllib.parse import urllib.request ...

最新文章

  1. 一文读懂MySQL事务锁、事务级别
  2. 病毒导致win2003服务器共享丢失业务中断
  3. SpringMVC异常处理机制详解[附带源码分析]
  4. Go 语言编程 — reflect 反射机制
  5. MVC初级知识之五——MVCHtmlHelper使用
  6. Redis高可用原理
  7. C# 死锁的原理与排查方法详解
  8. tf.app.flags和tf.app.run的使用
  9. Asp.net MVC 3实例学习之ExtShop(六)——登录对话框
  10. 7-323 逆波兰表达式 (10 分)
  11. MagicZoom bug-Strict Standards: Only variables should be assigned by reference Error
  12. MySQL 索引的原理与应用:索引类型,存储结构与锁
  13. window核心编程 22.3 DIPS.exe的踩坑逻辑梳理
  14. 架构之美第六章-建筑师的角色
  15. 不要浪费时间去写所谓的完美代码
  16. ValueError: matmul: Input operand 1 does not have enough dimensions (has 0, gufunc core with ...)
  17. 微信内置浏览器禁止调整字体大小的方法
  18. 快速实现大量数据匹配来电号码归属
  19. 一个强悍的算24点游戏的PHP程序
  20. python圆形_利用 Python 实现裁剪圆形头像

热门文章

  1. RISC-V_GD32VF103-开发环境搭建和使用
  2. it书籍分享免费下载
  3. vs2012旗舰版 有效注册密钥
  4. BXP无盘中启用bootp服务的设置详解(转)
  5. 基于python下django框架 实现旅游景区景点售票系统详细设计
  6. PLC编程语言都在这里了!
  7. 十字链表存储稀疏矩阵
  8. Word转换pdf技巧之pdf虚拟打印机怎么用教程
  9. Java 内存模型(JMM)
  10. 统计通话次数和时间的软件_通话时间统计app下载-通话时间统计下载v2.3-西西软件下载...