首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Emacs Lisp中"解码"一个字符串?

在Emacs Lisp中,可以使用decode-coding-string函数来解码一个字符串。该函数接受两个参数:要解码的字符串和字符编码。以下是一个示例:

代码语言:lisp
复制
(setq my-string "Hello, world!")
(setq decoded-string (decode-coding-string my-string 'utf-8))

在这个示例中,我们首先定义了一个字符串my-string,然后使用decode-coding-string函数将其解码为utf-8编码的字符串,并将结果存储在decoded-string变量中。

decode-coding-string函数可以解码多种编码,包括utf-8gbkgb2312等。您可以根据需要选择合适的编码方式。

需要注意的是,如果您的字符串已经是正确的编码,那么使用decode-coding-string函数可能会导致错误的结果。因此,在使用该函数之前,请确保您已经知道字符串的编码方式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Emacs 之光的成长历程

更令人好奇的是,嘉宾如何在短期内熟悉 Emacs 源码并为之贡献多个 patch,相信通过嘉宾的学习、贡献经历,可以给听众打开 Emacs 源码的神秘面纱,让更多用户参与到 Emacs 的贡献一个多小时的分享...[2] • 00:23:58 源码贡献经历 • 00:27:32 源码贡献流程介绍 • 00:38:15 如何读懂 Emacs 源码 • 00:57:59 嘉宾的第一个 Emacs patch • 01...,句号后两个空格 • 注释用的是 C 风格的 /* */ ,而不是 C++ 的 // • 函数名后面跟一个空格,再是括号 •读 Emacs 源码技巧 • lisp.h[12] 里面有 C 如何调用 ELisp...buffer: https://github.com/emacs-mirror/emacs/commit/7c83e605ab84e8b62254c55f347abc8aa9c6057b [12] lisp.h...: https://github.com/emacs-mirror/emacs/blob/master/src/lisp.h [13] devel: https://lists.gnu.org/archive

40610
  • Emacs Lisp

    LISP 编程语族已经演变出许多种方言,现代最著名的通用编程语种是 Common Lisp 和 Scheme , 以上解释来自 WIKI Emacs LispLisp一个分支 Emacs Lisp...;; 缓冲区也叫做工作区,在Emacs打开一个文件,实际只是在Emacs构造该文件的一个副本,放到缓冲区, ;; 在Emacs对该文件的编辑也是针对该副本的编辑,唯有保存改动时,Emacs才会把缓冲区的内容在复制到原文件中去...;; 为了实验本教程lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下, ;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...test*") (erase-buffer) (hello local-name) (other-window 1)) ;; format函数可以用做格式化的输出 其中%s表示该s的地方将被之后提供的一个字符串...的开头 ;; 从头开始搜索字符串Hello,并且替换成Bonjour ;; 结束之后在把光标移会到一开始的buffer

    2.3K40

    Emacs Lisp2

    ;; 缓冲区也叫做工作区,在Emacs打开一个文件,实际只是在Emacs构造该文件的一个副本,放到缓冲区,;; 在Emacs对该文件的编辑也是针对该副本的编辑,唯有保存改动时,Emacs才会把缓冲区的内容在复制到原文件中去...;; 为了实验本教程lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下,;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...2 2);; Elisp中表达式可以通过括号来嵌套(+ 2 (+ 1 1));; 在lisp-interaction-mode模式,我们可以直接计算一个表达式,计算的方法是(+ 3 (+ 1 2));...的开头;; 从头开始搜索字符串Hello,并且替换成Bonjour;; 结束之后在把光标移会到一开始的buffer。.../2018/07/23/emacs-lisp/

    98240

    Emacs Lisp

    LISP 编程语族已经演变出许多种方言,现代最著名的通用编程语种是 Common Lisp 和 Scheme , 以上解释来自 WIKI Emacs LispLisp一个分支 Emacs Lisp...;; 缓冲区也叫做工作区,在Emacs打开一个文件,实际只是在Emacs构造该文件的一个副本,放到缓冲区, ;; 在Emacs对该文件的编辑也是针对该副本的编辑,唯有保存改动时,Emacs才会把缓冲区的内容在复制到原文件中去...;; 为了实验本教程lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下, ;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...test*") (erase-buffer) (hello local-name) (other-window 1)) ;; format函数可以用做格式化的输出 其中%s表示该s的地方将被之后提供的一个字符串...的开头 ;; 从头开始搜索字符串Hello,并且替换成Bonjour ;; 结束之后在把光标移会到一开始的buffer

    2.2K30

    Emacs 折腾记

    我工作倒并没有用得到 Lisp 的地方,但是最近眼前晃过的一些书,比如《计算机程序的构造和解释》、《码农》杂志第 13 期,都对这门古老的语言推崇备至,历数现代 Lisp 方言的先进性,再者我也一直有学习一门函数式编程语言的想法...本来什么也不用配置的情况下 M-x ielm 就能进入一个 Emacs Lisp 的 REPL,但是它与 Common Lisp 毕竟还是有区别,所以还是另配置一个。...python % 来运行的,但是在 Emacs 里,包括 Evil、eshell、shell 里,如果有等待用户输入的语句 input 或 raw_input 等,因为 Emacs 只重定向了输出,无法重定向输入...C/S 模式快速启动 Emacs Emacs 的启动速度是相比 Vim 来说被诟病吐槽得很多的一个点,我们在 Windows 下可以利用 C/S 模式来实现 Emacs 快速打开文件。...在 ~/.emacs 里添加 这样 Emacs 将在打开时启动一个 Server。

    1.3K20

    Emacs 折腾记

    我工作倒并没有用得到 Lisp 的地方,但是最近眼前晃过的一些书,比如《计算机程序的构造和解释》、《码农》杂志第 13 期,都对这门古老的语言推崇备至,还有垠神也撰文《Lisp 已死,Lisp 万岁!...本来什么也不用配置的情况下 M-x ielm 就能进入一个 Emacs Lisp 的 REPL,但是它与 Common Lisp 毕竟还是有区别,所以还是另配置一个。...Update: 后来经验证,发现实际上是 sbcl 在安装过程写的环境变量没有生效导致的,sbcl 在安装过程中会设置两个环境变量,新建一个 SBCL_HOME 值为 sbcl 安装路径,在 PATH...python % 来运行的,但是在 Emacs 里,包括 Evil、eshell、shell 里,如果有等待用户输入的语句 input 或 raw_input 等,因为 Emacs 只重定向了输出,无法重定向输入...在 ~/.emacs 里添加 (server-start) 这样 Emacs 将在打开时启动一个 Server。

    1.9K10

    Emacs Tree-sitter 初体验

    现在较为流行的编辑器, neovim 都已支持 ts 作为解析库。...在 Emacs ,之前都是采用正则的方式去解析语言的语法结构,这种方式虽然大多数情况是没有问题的,但主要有以下几个问题: 正则比较消耗 CPU,导致对大文件进行高亮时容易导致 Emacs 卡主,参见:...Regexp Problems (GNU Emacs Lisp Reference Manual)[2] 对于有些语法结构,正则并不能很好的工作,参见:The true power of regular...对应的 mode 来使用,比如 c-mode 对应的 c-ts-mode ,Emacs 为不同的语言重新实现了一个以 ts-mode 结尾的新 mode,在 29 版本,主要有如下 12 个: 12...Lisp Reference Manual): https://www.gnu.org/software/emacs/manual/html_node/elisp/Regexp-Problems.html

    1.3K10

    操作系统Emacs是如何沦落为一代编辑器的?

    基础部分是使用C语言编写的,其他部分是用Emacs Lisp编写的。深层次的话,C语言构成了emacs的底层,包括Emacs Lisp的解释器。...而Emacs Lisp则是负责了Emacs Lisp的建筑物上层,也就是包括我们平时用的扩展、界面等。...从架构上来说,它很不错——你可以在很多的架构书上看到相关的介绍,《代码之美》、《架构之美》等等。 ?...作为一个著名的黑客,他的主要作品包括Emacs及后来的GNU Emacs,GNU C编译器及GDB调试器。...GNU编译器套装(GCC)、GNU的C库(glibc)、以及GNU核心工具组(coreutils),另外也是GNU除错器(GDB)、GNU二进制实用程序(binutils)的GNU Bash shell

    2K80

    通过函数调用进行字符串替换

    Emacs ,有如下几种文本替换的函数: • replace-string 字面量替换 • replace-regexp[1] 正则表达式替换 静态替换是最常见的,比如将 foobar 替换成 FOObar...代码时,转义字符需要有两个反斜线,比如 [0-9]\\{3,\\} ,这时因为: 反斜线不仅在 regexp 是特殊字符,在 lisp 这门语言中,也是特殊字符。...比如,在 Lisp 需要用 "\\" 表示一个反斜线字面量,如果直接写 [0-9]\{3,\} 那么在经过 lisp 的 parser 后, 得到的是 [0-9]{3} ,而这个正则并不是说匹配一个数字三次...,而只是一个数字,后面跟着 {3} 这三个字符而已。...这是在 Lisp 写正则比较容易出错的一点,Manual 的相关资料: • Syntax for Strings (GNU Emacs Lisp Reference Manual)[2] • Regexps

    6910

    一名Clojurian的Emacs配置

    "http://melpa.org/packages/")的点号(dot)表示法也比较奇怪,其实这是lisp的Dotted pair表示法,用法和普通的列表类似,但因为是pair的缘故,你可以使用(...按照惯例,我在~/.emacs.d目录下建立一个lisp目录用于存放所有自定义的模块文件,随后在init.el中加入下面这句代码,意在把lisp目录加到emacs的加载路径列表里。...(add-to-list 'load-path (expand-file-name "lisp" user-emacs-directory)) 看似,接下来就可以在每个独立的模块文件编写各种功能的配置...clojure mode 接下来,我们在~/.emacs.d/lisp目录下新建一个init-clojure.el文件,内容如下: (require 'clj-refactor) (require 'rainbow-delimiters...最后,需要在init.el文件添加入这么一句(require 'init-clojure-cider),重新启动emacs,找到一个Clojure项目,按下C-c M-j (hack-jack-in)

    2.8K20

    亚马逊工程师论各种编程语言的优缺点

    我们(当时)找不到 Emacs-Lisp 足够牛的人把 Mailman 继续搞下去。今天这应该不难了; 亚马逊现在到处都是 Emacs Lisp 的黑客。...他们当时没有足够多的 Emacs-Lisp 的人。...有一个执行助理把你从琐事解救出来让你有时间去思考那些真的需要你去解决的问题; 没有的话你将不得不花一半的时间在那些无聊的世俗的事情上。...跟 C++ 比,Java 作为一个语言还过得去。好吧,别扯了,Java 要好很多。因为它有(内建)的字符串。哥们,你说一个没有内建的字符串的语言是人用的吗。   ...所以 Perl 绝对是 Unix 系统管理和字符串处理的史上最强语言,除了一个,刚出来的一个,从哥斯拉(电影哥斯拉看过没)之地出来的一个。我一会儿会讲到那一个

    2.2K80

    Lisp语言简介_c++是什么语言

    在Unix/Linux系统,还有一种和Emacs一起的Emacs Lisp(而Emacs正是用Lisp作为扩展语言进行功能扩展的)非常流行,并建立了自己的标准。...Lisp的表达式是一个原子(atom)或表(list),原子(atom)又包含符號(symbol)與數值(number);表是由零个或多个表达式组成的序列,表达式之间用空格分隔开,放入一对括号:...如果一个表达式是一个表,那么我们把表的第一个元素叫做操作符,其余的元素叫做自变量。...在 Lisp 我们习惯用原子 t 表示真,而用空表 () 表示假。...,它返回 x 的第一个元素,例如: > (car ‘(a b))a 基本操作符5 cdr (cdr x) 同样要求 x 是一个表,它返回x除第一个元素之外的所有元素组成的表,例如: > (cdr ‘

    2.3K20

    几种编程语言的优缺点

    其次,这是一项进行的工程,现在只是东打一耙西搞一下,还没有精加工过的。又一个把它写到博客里的很大的理由。不需要很好,或很完整。就是我今天想说的一些话。请随便!...我们(当时)找不到 Emacs-Lisp 足够牛的人把 Mailman 继续搞下去。今天这应该不难了; 亚马逊现在到处都是 Emacs Lisp 的黑客。...他们当时没有足够多的 Emacs-Lisp 的人。...有一个执行助理把你从琐事解救出来让你有时间去思考那些真的需要你去解决的问题; 没有的话你将不得不花一半的时间在那些无聊的世俗的事情上。...跟 C++ 比,Java 作为一个语言还过得去。好吧,别扯了,Java 要好很多。因为它有(内建)的字符串。哥们,你说一个没有内建的字符串的语言是人用的吗。

    3.4K110

    excel宏编程 c语言,宏(巨集)

    Lisp类语言Common Lisp和Scheme有更精巧的宏系统: 宏的行为如同是函数对自身程序文本的变形,并且可以应用全部语言来表达这种变形。...一个 C 宏可以定义一段语法的替换,然而一个 Lisp 的宏却可以控制一节代码的计算。 获得了控制代码的执行顺序(见惰性计算和非限制函数)的能力,使得新创建的语法结构与语言内建的语法结构不可区分。...这一限制可以通过用更强大的编程语言,VBA来创建一个计算机程序在此弱编程语言里生成一个特别的宏来解决。...Emacs 最初被设计为编辑语言 TECO 的宏集,后被移植为 Lisp 的一种方言 Emacs Lisp。Vim也允许用户录制和播放简单的键盘宏。...其它的包括宏语言的项目,OpenOffice.org,故意从其宏语言中排除了一些功能(:自动执行)以避免破坏程序。然而,这一特性在很多事务受到欢迎。

    1.6K20

    何在Java判断一个字符串是否包含另一个字符串

    在Java,可以使用contains()方法或matches()方法来判断一个字符串是否包含另一个字符串。...一、使用contains()方法 Java的contains()方法用于检查原字符串(调用方法的字符串)是否包含特定的字符序列。如果原字符串包含指定的字符序列,则返回true,否则返回false。...三、综合应用 在实际开发,可能会遇到比较复杂的情况,比如可能要查找的字符序列事先是未知的,或者需要检查多个字符序列等等。...                System.out.println("The string does not contain " + subStr);             }         }     } } 代码字符串数组包含了我们想要检查的所有字符序列...,使用一个for-each循环对每个字符序列进行检查,如果原字符串包含当前字符序列,就打印出相应的信息。

    1.1K20

    Emacs001学用Emacs之入门:关于配置文件

    一个领域都有专用的好的工具,比如android开发用android sduio, 我先用emacs填补在使用这些好用的专用ide之外的任何地方。 最近打算好好体验下emacs。...这种方法把所有初始化函数放在一个文件里,设置起来简单,但是一旦插件多了这个文件就会变得很长很乱。 2. 使用目录: ~/.emacs.d/ 。...,可以很方便地把具体的初始化工作按类别分在其余文件。推荐的方法。...Emacs的配置文档是用elisp语言写的。elisp是lisp的一种方言。至于lisp语言,有人说它是黑客的语言。...(那传说中的lisp作为配置语言,这也是emacs吸引我的去学的一点,想象学配置的时候还可以顺便学一门语言...

    3K40
    领券