Questions tagged «unicode»

Unicode是用于文本编码,表示和处理的标准,旨在支持包含所有书写系统,技术符号和标点符号的书写文本所需的所有字符。

7
获取字符的unicode值
Java中有什么办法可以让我获得与任何字符均等的Unicode?例如 假设有一个方法getUnicode(char c)。呼叫getUnicode('÷')应该返回\u00f7。
68 java  unicode 


5
SQLite,python,unicode和非utf数据
我首先尝试使用python将字符串存储在sqlite中,并得到以下消息: sqlite3.ProgrammingError:除非使用可以解释8位字节串的text_factory(如text_factory = str),否则不得使用8位字节串。强烈建议您改为将应用程序切换为Unicode字符串。 好的,我切换到Unicode字符串。然后我开始收到消息: sqlite3.OperationalError:无法解码为文本为“ SigurRós”的UTF-8列“ tag_artist” 尝试从数据库检索数据时。进行了更多研究,我开始在utf8中对其进行编码,但随后“ SigurRós”开始看起来像“ SigurRós” 注意: 正如@John Machin指出的那样,我的控制台设置为在“ latin_1”中显示。 是什么赋予了?看完这篇文章并描述了我所处的完全相同的情况之后,似乎该建议是忽略其他建议并毕竟使用8位字节串。 在开始此过程之前,我对unicode和utf不太了解。在过去的几个小时中,我学到了很多东西,但是我仍然不知道是否有一种方法可以将“ó”从拉丁文1正确地转换为utf-8,而不是对其进行处理。如果没有,为什么sqlite强烈建议我将应用程序切换为unicode字符串? 我将使用最近24小时内我学到的所有内容的摘要和一些示例代码来更新此问题,以便穿鞋的人可以轻松获得指南。如果我发布的信息有误或以任何方式引起误导,请告诉我,我会更新,或者你们中的一位资深人士可以更新。 答案摘要 让我先说一说我了解的目标。如果要在各种编码之间进行转换,则处理各种编码的目的是要了解源编码是什么,然后使用该源编码将其转换为unicode,然后将其转换为所需的编码。Unicode是一个基础,编码是该基础的子集的映射。utf_8可以容纳unicode中的每个字符,但是由于它们与例如latin_1不在同一个位置,因此,以utf_8编码并发送到latin_1控制台的字符串看起来不会像您期望的那样。在python中,进入unicode并转换为另一种编码的过程如下: str.decode('source_encoding').encode('desired_encoding') 或者如果str已经在unicode中 str.encode('desired_encoding') 对于sqlite,我实际上并不想再次对其进行编码,我想对其进行解码并将其保留为unicode格式。在尝试使用python中的unicode和编码时,可能需要注意以下四点。 您要使用的字符串的编码以及要获取的字符串的编码。 系统编码。 控制台编码。 源文件的编码 详细说明: (1)从源读取字符串时,它必须具有某种编码,例如latin_1或utf_8。就我而言,我从文件名中获取字符串,所以不幸的是,我可能会获得任何类型的编码。Windows XP使用UCS-2(Unicode系统)作为其本机字符串类型,这对我来说似乎是作弊行为。对我来说幸运的是,大多数文件名中的字符都不会由多个源编码类型组成,而且我认为我的全部要么完全是latin_1,完全是utf_8,要么仅仅是纯ascii(这是两个字符的子集)那些)。因此,我只是阅读它们并对其进行解码,就好像它们仍在latin_1或utf_8中一样。不过,在Windows上的文件名中,可能有latin_1和utf_8以及其他任何字符混合在一起的可能。有时这些字符会显示为方框,有时候,它们看起来像是被弄乱了,而有时候,它们看起来是正确的(带重音的字符等等)。继续。 (2)Python具有默认的系统编码,该默认系统编码会在python启动时设置,并且无法在运行时更改。有关详细信息,请参见此处。肮脏的摘要...好吧,这是我添加的文件: \# sitecustomize.py \# this file can be anywhere in your Python path, \# but it usually goes in …

2
正则表达式匹配埃及象形文字[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 5年前关闭。 改善这个问题 我想知道一个正则表达式,以匹配埃及象形文字。我完全一无所知,需要您的帮助。 我无法发布字母,因为堆栈溢出似乎无法识别它。 任何人都可以让我知道这些字符的unicode范围。



3
哪些字符与Array.from分组?
我一直在玩JS,无法弄清楚JS在使用时如何决定将哪些元素添加到创建的数组中Array.from()。例如,以下表情符号👍的a length为2,因为它由两个代码点组成,但是Array.from()将这两个代码点视为1,从而给出了一个元素数组: const emoji = '👍'; console.log(Array.from(emoji)); // Output: ["👍"] 运行代码段Hide results展开摘要 但是,某些其他字符也有两个代码点,例如此字符षि(也具有.length2个字符)。但是,Array.from不要将此字符“分组”,而是产生两个元素: const str = 'षि'; console.log(Array.from(str)); // Output: ["ष", "ि"] 运行代码段Hide results展开摘要 我的问题是:当字符由两个代码点组成时,是什么决定字符被分解(如示例2)还是被视为一个元素(如示例1)?

2
有没有办法检查JS中的字符串是否是一个表情符号?
问题很简单:我有一个字符串str,如何检查str一个表情符号,是否只有一个?另外,我宁愿不使用其他库。 比赛"🍎","⛹🏿‍♂️","3️⃣"但不"🍓a","𝕒","🍌🍀" 我在寻找解决方案时遇到了麻烦,但是到目前为止,我已经尝试了一些方法: 尝试的解决方案1-玩弄长度和...运算符 我了解到,表情符号占据一个以上的字节,有些甚至占据4个字节,甚至更多……我们可以通过字符串的length属性来衡量: console.log("🍎".length); // 2 console.log("🛡️".length); // 3 console.log("⛹🏿‍♂️".length); // 6 然后我发现...运算符考虑了这一点,并正确分离了数组中的表情符号-然后,我可以查看结果数组的length属性并检测它们是否不同。 str = "⛹🏿‍♂️"; if (str.length !== [...str].length) { // is emoji? } else { // is not emoji } 但是,这不会检查其他多字节字符,例如𝕡长度为2的字符。另外,有些表情符号仍然被怪异地分开。 尝试解决方案2-正则表达式,正则表达式 当然,正则表达式是一个值得研究的问题,但我尚未找到可行的解决方案。 这个答案的正则表达式\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]可以很好地检测字符串是否有表情符号,但是将其应用于我的情况会产生很多问题。这是我的测试: A部分-没有字符串正则表达式(^和$)的开始/结束 2A.1 str.match(regex)非常不一致,它分解了一些表情符号和其他一些无法使用的表情符号。我没有找到一种方法来找出它是否甚至包含非表情符号字符或是否包含多个表情符号: let regex = /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/; console.log("5️⃣".match(regex)); // [ '⃣', '⃣', …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.