stata15中文乱码_如何解决 Stata 14 的中文乱码问题?
不久前遇到一位朋友,訴說使用 Stata 14 出現中文亂碼,而不得不退而使用更低版本的 Stata 的煩惱。其實,這只是因為 Stata 14 使用了 Unicode(統一碼、萬國碼)。
何為 Unicode?根據百度百科的解釋,“Unicode 是計算機科學領域里的一項業界標準,包括字符集、編碼方案等。Unicode 是為了解決傳統的字符編碼方案的局限而產生的,它為每種語言中的每個字符設定了統一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求”。
簡而言之,Unicode 使得跨語言交流變得更為方便精準。但這也意味著,Stata 14 引入 Unicode 之后,在 Stata 文件中(dta,do,ado 文件等),使用中文輸入的字符就會出現亂碼。解決方法也不難,只要進行適當的編碼翻譯(unicode translate)即可,即使用 Stata 14 提供的 unicode 系列命令,將中國大陸通行的國標碼(GB18030)翻譯為統一碼。
正好手頭有個關于中國姓氏人口的數據集出現了中文亂碼,故截取部分變量的前10個觀測值作為演示例子。首先,打開此數據集 surname_test.dta。
. use surname_test.dta, clear
點擊數據編輯器 “Data Editor (Browse)” 的快捷鍵,查看數據:
可以看出,上表的最后一列,變量 character(中文姓氏)出現了亂碼,無法正確顯示。在使用 Stata 14 命令 unicode 進行編碼時,內存中不能有數據,故先刪除數據。
. clear
然后,將需要編碼的文件(在此為 surname_test.dta),放入當期工作路徑(current working directory),通常在Stata的左下角顯示。
也可使用命令pwd(path of working directory)來顯示當期工作路徑。或使用命令cd(change directory)將當期工作路徑改為文件surname_test.dta 所在的位置,詳見“help cd”。
. pwd
C:\Program Files (x86)\Stata14
接下來,使用命令 unicode analyze 分析數據集 surname_test.dta 是否需要編碼翻譯。
. unicode analyze surname_test.dta
結果顯示,有一個字符串變量需要編碼翻譯(1 str# variable needs translation)。為此,將編碼設為國標碼(GB18030),再進行翻譯。
. unicode encoding set gb18030
(default encoding now gb18030)
. unicode translate surname_test.dta
(using gb18030 encoding)
結果顯示,此文件已編碼翻譯成功。再次打開此數據集,并通過數據編輯器 “Data Editor (Browse)” 查看:
. use surname_test.dta,clear
上表已能正確顯示中國人口最多的十大姓氏依次為:王、李、張、劉、陳、楊、黃、趙、周、吳。相信朋友可以安心使用 Stata 14 了。
(c) 2016, 陳強,山東大學經濟學院
轉載請注明作者與出處
總結
以上是生活随笔為你收集整理的stata15中文乱码_如何解决 Stata 14 的中文乱码问题?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL count和case when配
- 下一篇: 【C语言进阶深度学习记录】二十二 指针的