sublime python出现中文乱码怎么办

一、乱码现象

利用sublime自带编译快捷方式ctrl+B会出现中文乱码的情况。

print("没有循环数据!")
print("完成循环!")

27a6620b77d9298c8c6b023267e0cae.png

二、寻找原因

1、由于之前我已经安装了插件ConvertToUTF8,排除文本编码错误问题。

2、相同的代码在插件sublimerepl搭建的解释器交互下(按F5键),能成功显示中文。

20f56cbfd658834080f071c523d10be.png

在查找了很多案例之后发现:

Anaconda插件安装之后会自动生成一个叫“Anaconda Python Builder”的编译系统,在 工具-编译系统-中可以看到。

sublime读取解释器返回文本的编码不一样,于是通过下面这段代码验证:

import sys
print(sys.stdout.encoding)

用ctrl+B进行编译,返回的是“cp936”,用repl解释器交互返回的是utf-8,说明是由于编码不一致导致的。

之后新建了一个编译系统:

在Python3.sublime.build中写入下面代码:

{
"cmd":["C:\\Users\\jh\\Anaconda3\\python.exe", "-u", "$file"],
"path":"C:\\Users\\jh\\Anaconda3\\python.exe",   // 注意:路径根据自己的python安装路径而定 
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf-8" ,
"env": {"PYTHONIOENCODING": "utf8"}//通过这句,使编码一致,都是utf8
}

之后再用ctrl+B进行编译,返回“utf-8”,并且能成功打印中文。

但是在此之前,因为尝试多种方法,导致anaconda插件的自动补全代码无法使用,于是重装。

三、Anaconda插件的正确使用

1、阅读官方指南,官方给的建议是最好每个项目都独立设置。

2、根据官方的建议,新建一个project,并编辑项目,在sublime-project文件中写入:

{
    "build_systems":
    [
        {
            "name": "Anaconda Python Builder",
            "selector": "source.python",
            "encoding": "utf-8" ,
            "env": {"PYTHONIOENCODING": "utf8"},\\使编码一致
            "shell_cmd": "C:\\Users\\jh\\Anaconda3\\python.exe -u \"$file\"",\\解释器路径
        }
    ],
    "folders":
    [
        {
            "follow_symlinks": true,
            "path": "."
        }
    ],
    "settings":
    {
        "python_interpreter": "C:\\Users\\jh\\Anaconda3\\python.exe" \\解释器路径
        
    }
}

保存。

3、在Preferences>Package Settings>Anaconda,在那里会发现两个不同的条目,Settings-Default和Settings-User分别选择1和2。这些文件中的任何选项都必须放置在全局范围内。在Settings-User中写入:

 {   //http://damnwidget.github.io/anaconda/IDE/
     //"python_interpreter":"C:\\Users\\jh\\Anaconda3\\envs\\tensorflow\\python.exe",
     "python_interpreter":"C:\\Users\\jh\\Anaconda3\\python.exe",
     "auto_python_builder_enabled": false,
     "suppress_word_completions":true,//禁用掉Sublime Text原生的自动补全
     "suppress_explicit_completions":true,
     "complete_parameters":true,
 
     "anaconda_linter_phantoms": true,//提示错误,识别代码中的语法错误,代码建议,格式建议等
     "pyflakes_explicit_ignore"://告诉PyFlakes要忽视哪些警告
     [
        // "Redefined",
        "UnusedImport"
        // "UndefinedName",
        // "UndefinedLocal",
        // "UnusedVariable,",
        // "UndefinedExport",
        // "DuplicateArgument",
        // "RedefinedWhileUnused"
     ],
     "anaconda_linting_behaviour": "always",//模式
     "anaconda_linting": true,
     "anaconda_linter_delay": 2.0,//周期
     "swallow_startup_errors": true,
     "env": {"PYTHONIOENCODING": "utf8"} ,
 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/908326.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第三届北京国际水利科技博览会将于25年3月在国家会议中心召开

由中国农业节水和农村供水技术协会、北京水利学会、振威国际会展集团等单位联合主办的第三届北京国际水利科技博览会暨供水技术与设备展(北京水利展)将于2025年3月31日至4月2日在北京•国家会议中心举办! 博览会以“新制造、新服务、新业态”…

RHCE DNS

DNS DNS1.1 DNS介绍1.2 安装bind,配置文件1.3 正向解析文件模板1.4 反向解析文件模板1.5 转发服务器实验1.6 解析web服务器实验1.7 区域传送克隆虚拟机 DNS 1.1 DNS介绍 DNS系统 域名系统(DNS)是一个分层的分布式数据库。它存储用于将Inter…

JSON交互处理

目录 一、什么是JSON 二、JSON和JavaScript对象互转 ​三、Controller返回JSON数据 3.1 使用Jackson 编写Controller 1. 一个对象 2. 多个对象 3. 输出时间对象 4. 优化:抽取为工具类 一、什么是JSON Json是JavaScript对象的字符串表示法,它用…

GeoSever发布图层(保姆姬)

发布服务的具体步骤。 1. 安装 GeoServer 下载 GeoServer 安装包:GeoServer 官网按照安装说明进行安装,可以选择 Windows、Linux 或其他平台。 2. 启动 GeoServer 启动 GeoServer 通常通过访问 http://localhost:8080/geoserver 进行。默认用户名和密…

Linux中断、软中断、MMU内存映射-深入理解

中断: Linux中,中断上半部不能嵌套,如果一直保存上下文,栈可能会溢出。中断上半部处理紧急事情,下半部处理非紧急事情。下半部通常通过软中断来实现。在上半部执行完后会执行下半部的软中断,如果囤积了A和…

讲讲 kafka 维护消费状态跟踪的方法?

大家好,我是锋哥。今天分享关于【讲讲 kafka 维护消费状态跟踪的方法?】面试题?希望对大家有帮助; 讲讲 kafka 维护消费状态跟踪的方法? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Kafka 中&#x…

CodeS:构建用于文本到 SQL 的开源语言模型

发布于:2024 年 10 月 29 日 #RAG #Text2 SQL #NL2 SQL 语言模型在将自然语言问题转换为 SQL 查询(文本到 SQL )的任务中显示出良好的性能。然而,大多数最先进的 (SOTA) 方法都依赖于强大但闭源的大型语言…

深入浅出 Spring Boot 与 Shiro:构建安全认证与权限管理框架

一、Shiro框架概念 (一)Shiro框架概念 1.概念: Shiro是apache旗下一个开源安全框架,它对软件系统中的安全认证相关功能进行了封装,实现了用户身份认证,权限授权、加密、会话管理等功能,组成一…

「Mac畅玩鸿蒙与硬件17」鸿蒙UI组件篇7 - Animation 组件基础

在应用开发中,动画效果可以增强用户体验。鸿蒙框架提供了 translate、scale 和 rotate 等动画功能,允许对组件进行平移、缩放和旋转等操作。本篇将介绍 Animation 组件的基础知识和示例代码。 关键词 Animation 组件动画效果位置动画自动动画缩放动画 一…

详解:模板设计模式

模板设计模式(Template Pattern)是一种行为设计模式,在软件设计中有着广泛的应用,旨在提高代码的可维护性和可复用性。 一、定义与特点 定义: 模板设计模式定义了一个算法的骨架,将某些步骤推迟到子类中实…

Java中的时区和带时区的时间对象:ZoneId类、ZonedDateTime类

在 Java 中,ZoneId 和 ZonedDateTime 是处理时区和带时区日期时间的重要类,它们属于 java.time 包,这个包是在 Java 8 中引入的,用于替代旧的日期和时间 API(java.util.Date、java.util.Calendar 等)。 1、…

微积分复习笔记 Calculus Volume 1 - 4.5 Derivatives and the Shape of a Graph

4.5 Derivatives and the Shape of a Graph - Calculus Volume 1 | OpenStax

Windows配置Nodejs及nmp简明教程(2024可用)

一、下载及安装Nodejs 下载 Node.js 中文网 (nodejs.com.cn)在此下载windows长期维护版本的.msi安装包,64位 安装: 双节安装包一直点击Next下一步,注意安装路径选择C盘默认路径(C:\Program Files\nodejs\)即可&#x…

MATLAB实现蝙蝠算法(BA)

MATLAB实现蝙蝠算法(BA) 1.算法介绍 蝙蝠算法(简称BA)是一种受微型蝙蝠回声定位机制启发的群体智能算法,由Xin-She Yang于2010年提出。这种算法模拟了微型蝙蝠通过向周围环境发出声音并监听回声来识别猎物、避开障碍物以及追踪巢穴的行为。…

JavaStream流

认识 在java.util.stream util包下的新增API,可以用于操作集合或者数组的数据。 功能强大(提供了很多结合Lambda的API),性能高效(有很多优化),代码简洁(Lambda),可读性好…

【LwIP源码学习4】主线程tcpip_thread

前言 本文对lwip的主要线程tcpip_thread进行分析。 正文 tcpip_thread是lwip最主要的线程,其创建在tcpip_init函数中 sys_thread_new(TCPIP_THREAD_NAME, tcpip_thread, NULL, TCPIP_THREAD_STACKSIZE, TCPIP_THREAD_PRIO);tcpip_init函数被TCPIP_Init函数调用。…

HarmonyOS鸿蒙开发入门,常用ArkUI组件学习(二)

书接上回,让我们继续来学习ArkUI的其他组件 目录,可以点击跳转到想要了解的组件详细内容 组件四:Button组件五:Slider组件六: Column & Row组件七:循环控制组件八: List 组件四:…

四、k8s快速入门之Kubernetes资源清单

kubernetes中的资源 ⭐️ k8s中所有的内容都抽象为资源,资源实列化之后,叫做对象 1️⃣名称空间级别 ⭐️ kubeadm在执行k8s的pod的时候会在kube-system这个名称空间下执行,所以说当你kubectl get pod 的时候是查看不到的查看的是默认的po…

【收藏版】产品经理工作全流程拆解:每一步都是成功的基石

在信息爆炸的今天,产品经理的角色愈加重要。市场分析、用户需求调研、竞品分析、市场定位、产品设计、开发测试……每一个环节都可能决定产品的成败。这篇文章将带你逐步解读从产品立项到上线运营的全流程,为你揭开产品经理的核心工作要点。无论你是新手…

11.1组会汇报-基于区块链的安全多方计算研究现状与展望

基础知识 *1.背书,这个词源来自银行票据业务,是指票据转让时,原持有人在票据背面加盖自己的印鉴,证明该票据真实有效、如果有问题就可以找原持有人。 区块链中的背书就好理解了。可以简单的理解为验证交易并声明此交易合法&…