博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
<转>Sublime2 gbk编码乱码与gbk中文文件名乱码解决方案
阅读量:6962 次
发布时间:2019-06-27

本文共 3108 字,大约阅读时间需要 10 分钟。

让GBK Encoding Support内容支持中文,标签栏显示也为中文.

安装GBK Encoding Support ,然后修改SublimeText2\Data\Packages\GBK Encoding Support\sublime_gbk.py 

内容如下:

 

#coding: utf8import sublime, sublime_pluginimport os, reimport urllibTEMP_PATH = os.path.join(os.getcwd(), 'tmp')SEPERATOR = '                'def gbk2utf8(view):    try:        reg_all = sublime.Region(0, view.size())        gbk = view.substr(reg_all).encode('gbk')    except:        gbk = file(view.file_name()).read()        text = gbk.decode('gbk')                file_name = view.file_name().encode('utf-8')        tmp_file_name = urllib.quote_plus(os.path.basename(file_name))  + SEPERATOR + urllib.quote_plus(file_name)        tmp_file = os.path.join(TEMP_PATH, tmp_file_name)        # f = file(tmp_file, 'w')        f = file(view.file_name(), 'w')        f.write(text.encode('utf8'))        f.close()        window = sublime.active_window()                # v = window.find_open_file(tmp_file)        v = window.find_open_file(file_name)        if(not v):            window.open_file(file_name)            # window.open_file(tmp_file)        window.focus_view(view)        window.run_command('close')        window.focus_view(v)        sublime.status_message('gbk encoding detected, open with utf8.')def saveWithEncoding(view, file_name = None, encoding = 'gbk'):    if(not file_name):        file_name = view.file_name()    reg_all = sublime.Region(0, view.size())    text = view.substr(reg_all).encode(encoding)    gbk = file(file_name, 'w')    gbk.write(text)    gbk.close()    class EventListener(sublime_plugin.EventListener):    def on_load(self, view):        gbk2utf8(view)    def on_post_save(self, view):        parts = view.file_name().split(SEPERATOR)        if(view.file_name().startswith(TEMP_PATH) and len(parts) > 1):            file_name = urllib.unquote_plus(parts[1].encode('utf-8')).decode('utf-8')            saveWithEncoding(view, file_name)class SaveWithGbkCommand(sublime_plugin.TextCommand):    def __init__(self, view):        self.view = view    def run(self, edit):        file_name = self.view.file_name()        if(not file_name):            return        parts = file_name.split(SEPERATOR)        if(not file_name.startswith(TEMP_PATH) and len(parts) <= 1):            saveWithEncoding(self.view)            sublime.active_window().run_command('close')            sublime.active_window().open_file(self.view.file_name())        else:            sublime.active_window().run_command('save')class SaveWithUtf8Command(sublime_plugin.TextCommand):    def __init__(self, view):        self.view = view    def run(self, edit):        file_name = self.view.file_name()        if(not file_name):            return        parts = file_name.split(SEPERATOR)        if(file_name.startswith(TEMP_PATH) and len(parts) > 1):            file_name = urllib.unquote_plus(parts[1].encode('utf-8')).decode('utf-8')            saveWithEncoding(self.view, file_name, 'utf-8')            sublime.active_window().run_command('close')            sublime.active_window().open_file(file_name)        else:            sublime.active_window().run_command('save')

 

 

转载地址:http://tnmil.baihongyu.com/

你可能感兴趣的文章
阿里开源!轻量级深度学习端侧推理引擎 MNN
查看>>
深入理解MyBatis原理
查看>>
PageOffice,word常用接口对象--Table类
查看>>
74.expect脚本同步文件以及指定host同步文件 构建分发系统文件和命令
查看>>
【Stimulsoft Reports Java教程】运行Java Web Viewer
查看>>
Visual Paradigm 教程[UML]:如何使用刻板印象和标记值?(下)
查看>>
在Python中使用静态,类或抽象方法的权威指南
查看>>
[漏洞预警]交易所漏洞之"薅羊毛"分析
查看>>
SCRUM起源
查看>>
对Docker了解多少?10分钟带你从入门操作到实战上手
查看>>
小程序对汽车行业,会是一波红利吗?
查看>>
linux中sleep函数的使用和总结
查看>>
Zookeeper之介绍和安装环境准备
查看>>
分布式系统图片上传方案 (一)
查看>>
APP上线前的优化
查看>>
省市二级联动菜单改进
查看>>
学习redis(3)哨兵模式
查看>>
kafka学习(6)集群的搭建
查看>>
php扩展开发入门
查看>>
BOM中各对象属性和方法
查看>>