打酱油的仔 發表於 2023-5-22 00:00:00

Ubuntu 16.04 LTS系统里中文txt文件打开的问题解决

<p>
        <span><strong>前言</strong></span></p>
<p>
        大家都知道,ubuntu系统对中文的支持还是比较友好,除了对text文件编码的识别有点问题以外。</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="Ubuntu 16.04 LTS系统里中文txt文件打开的问题解决" alt="Ubuntu 16.04 LTS系统里中文txt文件打开的问题解决" src="https://zhuji.jb51.net/uploads/img/202305/8237d4b5445bed551d3200931641089c.jpg"></p>
<p>
        gedit直接打开中文txt文件</p>
<p>
        出现这种问题的原因是txt文件是在windows环境下生成,ubuntu下文本阅读器如vim和gedit对文件编码格式不能自动识别。</p>
<p>
        这里给出几种可能的解决方案。</p>
<p>
        <span><strong>文件格式转换</strong></span></p>
<p>
        利用 dos2unix unix2dos unix2mac 等命令将txt文件从源操作系统转换到目标操作系统。</p>
<p>
        如果这几个命令不存在,请使用下面的命令进行安装。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_997755">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt </code><code class="bash functions">install</code> <code class="bash plain">dos2unix </code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt </code><code class="bash functions">install</code> <code class="bash plain">unix2dos</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        使用如下命令进行格式转换:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_654424">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">dos2unix [</code><code class="bash functions">file</code> <code class="bash plain">...] [-n infile outfile ...] </code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">unix2dos [</code><code class="bash functions">file</code> <code class="bash plain">...] [-n infile outfile ...]</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        这种转换会改变原来文件的一些属性如生成时间等。如果文件需要从两个不同操作系统进行访问时,这个解决方案是不合适的。</p>
<p>
        <span><strong>.vimrc设置缺省编码格式</strong></span></p>
<p>
        这个解决方案适合我这样的vim爱好者。</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="Ubuntu 16.04 LTS系统里中文txt文件打开的问题解决" alt="Ubuntu 16.04 LTS系统里中文txt文件打开的问题解决" src="https://zhuji.jb51.net/uploads/img/202305/3891fe0adc5104bb0f728234fb9f4bf0.jpg"><br>
        vim打开乱码</p>
<p>
        解决问题的方法是按照下图修改 /etc/vim/vimrc 或者是 /etc/vim/vimrc.local 文件。</p>
<p>
        /etc/vim/vimrc中会调用/etc/vim/vimrc.local。修改两者中任一个都行。推荐修改/etc/vim/vimrc.local。</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="Ubuntu 16.04 LTS系统里中文txt文件打开的问题解决" alt="Ubuntu 16.04 LTS系统里中文txt文件打开的问题解决" src="https://zhuji.jb51.net/uploads/img/202305/424dc07599fa500df345bebc1f713cfd.jpg"><br>
        vimrc修改</p>
<p>
        然后再次使用vim打开同样的文件,bingo,搞定。</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="Ubuntu 16.04 LTS系统里中文txt文件打开的问题解决" alt="Ubuntu 16.04 LTS系统里中文txt文件打开的问题解决" src="https://zhuji.jb51.net/uploads/img/202305/5f18b5d89f03eaa0810c609e0882763e.jpg"><br>
        vim正常打开文件</p>
<p>
        <span><strong>gedit强制限定编码打开</strong></span></p>
<p>
        gedit是ubuntu下强大的文本编辑软件。直接使用gedit来打开中文txt文件是最有吸引力的解决方案。</p>
<p>
        其实这个解决方案更简单。</p>
<p>
        首先使用 chardet3 来检测文件的编码格式。</p>
<blockquote>
        <p>
                chardet3 常用的正则表达式总结.txt</p>
</blockquote>
<p>
        运行的结果显示该文件的编码格式是gb2312:</p>
<blockquote>
        <p>
                常用的正则表达式总结.txt: gb2312 with confidence 0.99</p>
</blockquote>
<p>
        知道了编码格式后可以在运行gedit时加入encoding选项,如下</p>
<p>
        <strong>gedit --encoding gb2312 常用的正则表达式总结.txt</strong></p>
<p>
        同样可以正常打开该txt文件,如下图所示。</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="Ubuntu 16.04 LTS系统里中文txt文件打开的问题解决" alt="Ubuntu 16.04 LTS系统里中文txt文件打开的问题解决" src="https://zhuji.jb51.net/uploads/img/202305/4b2dfad73d9ab615bc8cdd1802eb0608.jpg"><br>
        gedit打开文件</p>
<p>
        <span><strong>总结</strong></span></p>
<p>
        以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。</p>
<p>
        原文链接:http://www.jianshu.com/p/f670269ceb87</p>
頁: [1]
查看完整版本: Ubuntu 16.04 LTS系统里中文txt文件打开的问题解决