问题标签 [unicode-escapes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在编程中,为什么正则表达式的转义序列和字符串文字的转义序列不同?
在许多语言中,对转义序列的支持不同于字符串文字和正则表达式。例如,在 python 中,\s
转义序列出现在正则表达式中,而不是字符串文字,而在 php 中,\f
换页符转义序列出现在正则表达式中,而不是字符串文字。虽然我理解显而易见的(\s
代表多个字符并会引入歧义),但有些例子并不那么清楚。最重要的是,这些背后的文档也经常被忽视。
例如,PHP 有一个专门用于 PCRE 转义序列的页面http://php.net/manual/en/regexp.reference.escape.php,但未能提供字符串文字中转义序列的官方排他列表。
由于我是编程新手,我担心我错过了这背后的一些关键信息/历史。我的担心有道理吗?这甚至是一个问题吗?其他人都知道我不知道的事情吗?
(图片相关)一个非官方的,甚至不知道它是否正确的 php 字符串文字转义序列列表。为什么语言不在正则表达式和字符串文字之间进行标准化?以及为什么我似乎无法在这两个截然不同的事物之间找到好的文档
escaping - 字符代码页:控制代码页分配,意思是“下一个呈现的字符(在此源代码中)被转义?”
我承认这个问题可能无法回答,或者极难回答。
此外,尽管我希望这些观众熟悉脚本语言中的转义序列,但为了清楚起见,您将在本文后面看到,我将回顾一下这个概念:
“转义”是指例如可打印的字符,这些字符被解释为“不要像往常一样使用下一个字符;在另一个上下文中解释它”。上下文包括不被解释为代码的字符,而是作为文字打印字符,或者相反,通常可以被解释为我们想要解释为代码的文字字符的字符。我的例子(更令人困惑,我现在意识到)使用后一种情况。
具体示例:与 'nix sed 一起使用的正则表达式,当不为 sed 转义时,是这样的:
但是,当 shell 转义以将正则表达式传递给 sed 时,sed 知道将字符解释为不是文字字符,而是作为正则表达式代码,整个字符串变得更加丑陋(并且更不可读):
转义字符(或序列)是编程的祸根之一。对于长字符串(或代码行)尤其如此,在这种情况下,只有特别注意和/或使用创建和删除转义序列的工具才实用。
我环顾四周并没有遇到像我将提出的解决方案,但不知道如果它存在可能会被命名为什么,并且不是专家,搜索是徒劳的。
在我说诸如“控制代码页分配”之类的东西的地方,我指的是计算机用来呈现和控制文本布局等的可打印(和不可打印)字符表的代码页,正如解释的那样在“代码页”的维基百科文章中。如果你愿意的话,你可以(松散地)称这些“计算机字母”。我所说的“代码页分配”是指计算机“字母表”中的一个条目,它被解释为呈现的字形(可打印字符)或未打印的控制代码(不可打印的字符)。
这个想法是指定一个特定的、未打印的控制代码页分配来表示“将下一个字符解释为已转义”,文本渲染器可以“读取”并通过更改例如转义字符的颜色和/或亮度来向程序员指示遵循控制代码。和/或控制代码页分配可以是可打印的字形,例如是标准化的、非侵入性的重音字形,它不与与罗马字母相关的任何字母中的任何其他重音相冲突。
解释器和编译器也可以类似地读取此未打印的代码页分配。
假设一个比我上面给出的更长的正则表达式的渲染版本:
如果我们有一个未打印的代码页分配意味着“下一个字符被转义”,那么转义字符可以例如简单地渲染得更亮,以表明它们被转义:
对于人类来说,这比下面的解释要容易得多(尽管这很难从正则表达式开始),而是使用打印字符作为转义序列:
在我写这篇文章时,如果不是普遍情况,主要的情况是在转义序列中使用打印的字符,而不是未打印的代码页分配。
所提出的解决方案的附带问题将是确保程序员使用的许多工具与转义代码页分配的一致性。程序员还必须知道哪些实用程序支持转义代码页分配,哪些不支持。此外,任何采用这种代码页分配的工具最好明确说明它们是否向后兼容(它们是否可以同时使用打印字符和未打印的代码页分配用于转义序列)。
除了转义控制代码页分配之外,我不喜欢通过任何方式完成此任务的任何编程语言或工具。尽管如此,我对任何可以做到这一点的工具都非常好奇。
因此,在所有这些之后,我的问题是:存在哪些编程语言可以做到这一点,和/或是否已经有代码页分配可以做到这一点?
java - JDK 1.8 上的 unicode 转义字符给出了双引号错误未正确关闭字符串文字
您好,智慧社区,
我已经围绕这个问题做了一些研究,但似乎无法找到我确切问题的答案
我面临一个奇怪的编译时问题,其中包含 unicode 转义码的 Java 字符串文字。
这是正在考虑的代码片段:
我收到该行的编译时错误“字符串文字没有被双引号正确关闭”
奇怪的是,线
如果存在相同的 unicode 文字,似乎不会引起任何问题。我已经使用 unicode 符号语法有一段时间了。如果我的记忆没有让我失望,则格式为\uXXXX,其中 X 是十六进制数字。
我的环境是
- JDK 1.8.0_66
- MACOSX El Capitan
- 日食火星.1
我的问题是:
- 有没有人遇到过同样的问题?
- 这是一个已知的 JDK 1.8 编译器错误吗?
- 有解决方案或解决方法吗?
- 有谁知道我做错了什么?
(这非常令人沮丧,并阻止我编译我的代码)
php - 如何搜索显示为十进制数字字符引用(NCR)&#xxxxx 的 MySQL 条目?
当我使用以下查询搜索我的 MySQL 数据库时:
SELECT * FROM mytable WHERE mytable.title LIKE '%副教授%';
(“副教授”是三个汉字,其十进制数字字符引用,NCR,是“ 副教授
”),我没有得到结果。
通过查看 phpMyadmin 并浏览“mytable”,应该找到的条目显示为“ 副教授
”。我认为这就是搜索失败的原因。
并非同一列中的所有条目都是数字字符引用,其中一些是正常的。这是 phpMySQLAdmin 中显示的表格列的一张图片。
我想知道如何使用一种格式在 MySQL 中的表中搜索所有条目,无论是否在 NCR 中显示。或者我应该通过运行一些脚本来转换 NCR 条目吗?谢谢。
go - 如何解码包含反斜杠编码的 Unicode 字符的字符串?
我有一个字符串存储为a
:
有没有办法可以转换a
成b
?
xml - 转义 URL - XML - 动态磁贴 - UWP
在 C# 中我有 System.Security.SecurityElement.Escape(url),但在我的 BackgroundTask 中我无法访问它。我尝试:
url= url.Replace("&", "&").Replace("<", "<").Replace(">", ">").Replace("\"", """).Replace("'", "'");
但是这种方式非常非常无聊。有什么办法可以用本机方法做到这一点?就像我写的第一个一样。
UrlEncode 不适合我,只有我需要转义 url。
(我基于这个链接:http ://weblogs.sqlteam.com/mladenp/archive/2008/10/21/Different-ways-how-to-escape-an-XML-string-in-C.aspx )
任何想法?
提前致谢
java - 在两个零旁边转义空字节
我需要转义以下定义为静态最终的序列
.concat()
如果不使用该方法或+
字符串运算符,我将如何逃避它?
这是无效的,和第一个不一样。
这也不是。
ruby - 从变量中打印 Unicode 转义码
我有一个 Unicode 字符代码列表,我想用rumoji
. 这是我用来迭代数据的代码。
我不确定如何在转义字符串中使用变量名。
groovy - 为什么三引号字符串中的 "\1" 评估为 unicode 0x1 代码点
我想要一个包含 text 的字符串\1
。
我所做的是(真正的字符串更长,但并不重要):
这导致了一个包含 unicode 代码点的字符串0x1
。
我认为我应该做的就是像这样逃避反斜杠:
我不明白的是为什么 Groovy 没有在这里报错。我认为 unicode 转义应该看起来像\u1
?
当我尝试将此字符串放入 XML 元素时,我得到了运行时异常,而不是语法错误:
javascript - 无法呈现 js unicode 字符`\u1F310`
例如,欧米茄符号正确渲染'\u03A9'
,但地球符号 '\u1F310'
http://www.fileformat.info/info/unicode/char/1f310/index.htm - 不是。已在控制台和节点环境中试用