是什么之间的区别Unicode,UTF8,UTF7,UTF16,UTF32,ASCII,和ANSI编码?
这些对程序员有什么帮助?
我对编码有点困惑.据我所知,旧的ASCII字符每个字符占用一个字节.Unicode字符需要多少字节?
我假设一个Unicode字符可以包含来自任何语言的每个可能的字符 - 我是否正确?那么每个字符需要多少字节?
UTF-7,UTF-6,UTF-16等是什么意思?它们是不同版本的Unicode吗?
考虑:

这是真的unicode=utf16吗?
许多人说Unicode是标准,而不是编码,但大多数编辑器实际上支持另存为Unicode 编码.
AFAIK,Python(v2.6)csv模块默认不能处理unicode数据,对吗?在Python文档中有一个关于如何从UTF-8编码文件中读取的示例.但是此示例仅将CSV行作为列表返回.我希望按名称访问行列,csv.DictReader但是使用UTF-8编码的CSV输入文件.
谁能告诉我如何以有效的方式做到这一点?我将不得不处理100个MByte大小的CSV文件.
将UTF-8编码的字符串插入UTF-8编码表会产生不正确的字符串值.
PDOException:SQLSTATE [HY000]:常规错误:1366字符串值不正确:'\ xF0\x9D\x84\x8E i ...'第1行的列'body_value':INSERT INTO
我有一个 character, in a string that mb_detect_encoding claims is UTF-8 encoded.
I try to insert this string into a MySQL table, which is defined as (among other things) DEFAULT CHARSET=utf8
编辑: Drupal总是SET NAMES utf8使用可选项COLLATE(至少在与MySQL交谈时).
编辑2:一些看似相关的细节.我从PostgreSQL数据库中获取了一些文本.我将它粘贴到一个对象上,使用mb_detect_encoding验证它是UTF-8,并使用node_save将对象持久保存到数据库.因此,虽然存在触发导入的HTTP请求,但数据不是来自浏览器.
编辑3:数据在两个表上非规范化:
SELECT character_set_name FROM information_schema.
COLUMNSC WHERE table_schema ="[database]"AND table_name IN("field_data_body","field_revision_body")AND column_name ="body_value";
>+--------------------+
| character_set_name |
+--------------------+
| utf8 |
| utf8 |
+--------------------+
Run Code Online (Sandbox Code Playgroud)
编辑4:这个角色可能是"新的"吗?我对unicode和UTF-8之间的关系有点模糊,但这篇 …
对PHP开发人员有什么好处 - Unicode或UTF-8?
我打算创建一个国际CMS.所以我将在世界各地拥有客户.他们会讲所有可能的语言.
什么编码格式更适合浏览器识别和DB数据存储?
我有一个dbf文件,其中有MONTRÉAL一个作为entires.我必须将此dbf文件转换为csv文件.
为此,我使用Microsoft Visual FoxPro驱动程序驱动程序读取此dbf文件,然后将每行转换为逗号分隔,然后将所有行写入名为"ASD.csv"的文件中.
但在CSV文件MONTRÉAL的显示MONTR?AL在地方即É一个?出现的字符.我尝试使用UTF8编码,同时将行写入csv文件,但即使这样也行不通.
请帮忙.
我试图通过压缩String我通过 WebSocket 从 Springboot 应用程序发送到浏览器客户端的 JSON (这是在permessage-deflateWebSocket 扩展之上)来减少带宽消耗。此场景使用以下String长度为 383 个字符的JSON :
{"headers":{},"body":{"message":{"errors":{"password":"Password length must be at least 8 characters.","retype":"Retype Password cannot be null.","username":"Username length must be between 6 to 64 characters."},"links":[],"success":false,"target":{"password":"","retype":"","username":""}},"target":"/user/session/signup"},"statusCode":"UNPROCESSABLE_ENTITY","statusCodeValue":422}
Run Code Online (Sandbox Code Playgroud)
为了进行基准测试,我从服务器发送压缩和未压缩的字符串,如下所示:
Object response = …,
SimpMessageHeaderAccessor simpHeaderAccessor =
SimpMessageHeaderAccessor.create(SimpMessageType.MESSAGE);
simpHeaderAccessor.setSessionId(sessionId);
simpHeaderAccessor.setContentType(new MimeType("application", "json",
StandardCharsets.UTF_8));
simpHeaderAccessor.setLeaveMutable(true);
// Sends the uncompressed message.
messagingTemplate.convertAndSendToUser(sessionId, uri, response,
simpHeaderAccessor.getMessageHeaders());
ObjectMapper mapper = new ObjectMapper();
String jsonString;
try {
jsonString = mapper.writeValueAsString(response);
}
catch(JsonProcessingException e) {
jsonString = response.toString(); …Run Code Online (Sandbox Code Playgroud) 我最近一直在阅读UTF-8可变宽度编码,我发现奇怪的是,UTF-8指定每个连续字节的前两位为10.
Range | Encoding
-----------------+-----------------
0 - 7f | 0xxxxxx
80 - 7ff | 110xxxx 10xxxxxx
800 - ffff | 1110xxx 10xxxxxx 10xxxxxx
10000 - 10ffff | 11110xx 10xxxxxx 10xxxxxx 10xxxxxx
Run Code Online (Sandbox Code Playgroud)
我正在玩其他可能的可变宽度编码,并发现通过使用以下方案,最多需要3个字节来存储所有Unicode.如果第一位是1,则字符被编码为至少一个字节(读取直到第一位为0).
Range | Encoding
-----------------+-----------------
0 - 7f | 0xxxxxx
80 - 407f | 1xxxxxx 0xxxxxxx
4080 - 20407f | 1xxxxxx 1xxxxxxx 0xxxxxxx
Run Code Online (Sandbox Code Playgroud)
UTF-8中的连续位真的那么重要吗?第二种编码看起来效率更高.
我对 C# UTF8 编码感到困惑......
假设这些“事实”是正确的:
根据C# 参考,每个字符的可接受范围是 0x0000 到 0xFFFF。我不明白 0xFFFF 以上并在 Unicode 协议中定义的另一个字符怎么样?
与 C# 相比,当我使用 Python 编写 UTF8 文本时,它覆盖了所有预期范围(0x0000 到 0x10FFFF)。例如:
u"\U00010000" #WORKING!!!
Run Code Online (Sandbox Code Playgroud)
这不适用于 C#。更重要的是,当我用Python将字符串u"\U00010000"(单个字符)写入文本文件,然后从C#中读取它时,这个单字符文档在C#中变成了2个字符!
# Python (write):
import codecs
with codes.open("file.txt", "w+", encoding="utf-8") as f:
f.write(text) # len(text) -> 1
// C# (read):
string text = File.ReadAllText("file.txt", Encoding.UTF8); // How I read this text from file.
Console.Writeline(text.length); // 2
Run Code Online (Sandbox Code Playgroud)
为什么?怎么修?