首页 / 知识
适用于不同语言的最小Unicode编码?
2023-04-17 02:53:00

Smallest Unicode encodings for different languages?不同语言的不同unicode编码的典型平均每字符字节率是多少? 例如。 如果我想用最少的字节来编码一些英文文本,那么平均每个字符UTF-8将为1个字节,而UTF-16将为2个字节,因此我选择UTF-8。 如果我想要一些韩文文字,那么UTF-16可能平均每个字符大约2个字符,而UTF-8可能平均大约3个字符(我不知道,我只是在这里举例说明一些数字)。 哪种编码对不同语言和字符集的存储要求最小? 如果您真的担心字符串/字符的大小,是否考虑过压缩它们?这样会自动将字符串缩减为"最小"编码。这是一个令人头疼的问题,尤其是如果您想在内存中这样做,并且在很多情况下它不会给您带来任何好处,但是尤其是编码,对于您看上去紧凑的级别而言,它往往过于通用瞄准。 UTF8最适用于字符主要在U + 0800以下的任何字符集。否则为UTF16。 也就是说,UTF8适用于拉丁文,希腊文,西里尔文,希伯来文和阿拉伯文以及其他一些语言。在除拉丁语之外的其他语言中,字符将占用与UTF16中相同的空间,但是您将在标点和间距上节省字节。 对于任何给定的语言,您的每字符字节率都相当恒定,因为大多数语言都分配给了连续的代码页。重音拉丁字符是最大的例外,在代码空间中,重音拉丁字符分配得比无重音形式高。我没有这些的确切数字。 对于具有连续字符分配的语言,维基百科上有一张表格,其中列出了各种语言的详细编号。通常,UTF-8适用于大多数小型字符集(在高代码页上分配的字符集除外),而UTF-16适用于两字节字符集。 如果需要更密集的压缩,则可能还需要查看Unicode技术说明14,它比较了一些旨在减少各种语言的数据大小的特殊用途的编码。但是这些技术并不是特别普遍。 我不知道确切的数字,但是对于日语,Shift_JIS平均每个字符的字节数比UTF-8小,EUC-JP也是如此,因为它们针对日语文本进行了优化。但是,它们没有覆盖与Unicode相同的代码点空间,因此它们可能不是您问题的正确答案。 对于日语字符,UTF-16优于UTF-8(每个字符2个字节,而不是3个字符),但是如果有很多7位字符,则它比UTF-8差。这取决于上下文-技术文本更有可能在1字节范围内包含许多字符。日语经典文字可能没有任何文字。 请注意,对于传输,如果可以压缩(gzip,bz2)数据,则编码并不重要。 Unicode中字母的代码点彼此靠得很近,因此您希望压缩数据中的前缀很短的通用前缀。 UTF-8通常适合于在内存中表示,因为它通常比UTF-32或UTF-16更紧凑,并且与char *上的功能兼容,这些功能可以"期望" ASCII或ISO-8859-1 NUL终止的字符串。但是,如果您需要按索引随机访问字符,则没有用。 如果您不关心非BMP字符,则UCS-2始终是每个字符2个字节,因此可以进行随机访问。但这取决于您所说的" Unicode"的含义。 在UTF-16中,所有重要的语言(除了克林贡语,精灵语言和其他奇怪的事物)都将被编码为2个字节的字符。 因此,问题是要找到具有2个字节或1个字节大小的字符的字形的语言。
在UTF-8上的Wikipedia页面中: 我们看到,Unicode索引为0x0800或更大的字符在UTF-8中的长度至少为3个字节。 知道这一点,您只需要查看unicode上的代码表即可:http://www.unicode.org/charts/ 符合您要求的语言。 :-) 现在,请注意,根据您使用的框架,选择可能不是您要做的:
所以,拿起你的毒药... :-) UTF-8 JoelOnSoftware上有一篇关于unicode的很好的文章: 每个软件开发人员绝对,肯定必须绝对了解Unicode和字符集(无借口!) |
最新内容
相关内容
编程语言为什么需要函数?
编程语言为什么需要函数?,代码,灵活,地方,函数,技术,高效,可读性,可维护性,变量,性能,一、代码重用与模块化通过将常用代码块封装为函数,可以编程语言中的「组合性」是什么意思
编程语言中的「组合性」是什么意思?,代码,状态,设计,流程,技术,概念,函数,组件,对象,灵活性,一、基本概念组合性是编程中一个核心概念,指的是matlab和什么语言类似?
matlab和什么语言类似?,数据,工程,分析,通用,工具,技术,相似性,语言,科学,方面,一、与Fortran的相似性语法结构:MATLAB的数组和矩阵操作与FortChatgpt中运用到的大语言模型数据
Chatgpt中运用到的大语言模型数据集有哪些?,数据,规模,合规,庞大,网络,信息,网上,金融,通用,准则,1、Common Crawl规模庞大:包括了数十TB的网计算机视觉一般都用什么语言实现?
计算机视觉一般都用什么语言实现?,项目,设计,工具,技术,平台,检测,实时,地图,安防,生产,一、PythonPython是最常用于计算机视觉项目的编程语深度学习在自然语言处理方面的运用
深度学习在自然语言处理方面的运用有哪些?,技术,分析,系统,客服,智能,客户服务,深度,文本,神经网络,问题,1. 文本分类和情感分析主题识别:利用format_map与format字符串格式化的
format_map与format字符串格式化的区别是什么?,数据,技术,位置,嵌套,参数,时会,灵活性,字典,性能,错误,一、数据输入形式1、format: 主要接受linux命令寻找字符串?
linux命令寻找字符串?,系统,工具,命令,文件,数据,标准,信息,时间,字符串,选项,图文说明Linux下grep查找含有某字符串的方法1、在linux中grep命linux命令是由c语言?
linux命令是由c语言?,系统,环境,代码,工作,工具,情况,管理,传播,语言,命令,Linux系统中一般使用什么语言编程呀?1、linux是用什么语言写的?我们linux虚拟机文本命令?
linux虚拟机文本命令?,系统,工作,名字,代码,命令,文件,信息,第一,数据,名称,Linux下,编辑文件的命令是什么?按下回车键了解Emacs命令。输入文linux命令字符串比较?
linux命令字符串比较?,字符串,数字,工作,情况,命令,文件,字符,函数,两个,单词,每天一个linux命令(1)sortSort -r -o outfile +0 -1 example Solinux启动r语言命令?
linux启动r语言命令?,数据,环境,官网,服务,系统,时间,电脑,统一,软件,语言,linux服务器怎么运行r语言rsession-which-r=/usr/local/bin/R ##