如果UTF-8是8位,这是否意味着最多只能有256个不同的字符?
前128个代码点与ASCII相同.但它说UTF-8可以支持多达百万个字符?
这是如何运作的?
我扫描了Rust文档,以便在字符编码之间进行转换,但没有找到任何内容.我错过了什么?
是否由Rust语言及其标准库支持(直接或间接),甚至计划在不久的将来?
由于其中一个答案表明有一个简单的解决方案,因为u8可以转换为(Unicode)chars.Unicode是ISO-8859-1中代码点的超集,即1:1映射,它编码为UTF-8中的多个字节,这是StringRust 中s 的内部编码.
fn main() {
    println!("{}", 196u8 as char);
    println!("{}", (196u8 as char) as u8);
    println!("{}", 'Ä' as u8);
    println!("{:?}", 'Ä'.to_string().as_bytes());
    println!("{:?}", "Ä".as_bytes());
    println!("{}",'Ä' == 196u8 as char);
}
得到:
Ä
196
196
[195, 132]
[195, 132]
true
哪个我甚至没有考虑过工作!
在函数mb_detect_encoding中有一个严格模式的参数.
在第一个,最受欢迎的评论中:
<?php
$str = 'áéóú'; // ISO-8859-1
mb_detect_encoding($str, 'UTF-8'); // 'UTF-8'
mb_detect_encoding($str, 'UTF-8', true); // false
这是真的,是的.但有人可以给我一个解释,为什么呢?
我正在尝试编写一个脚本,通过创建随机的utf-8编码字符串然后将其解码为unicode来生成随机unicode.它适用于单个字节,但有两个字节就失败了.
例如,如果我在python shell中运行以下命令:
>>> a = str()
>>> a += chr(0xc0) + chr(0xaf)
>>> print a.decode('utf-8')
UnicodeDecodeError: 'utf8' codec can't decode byte 0xc0 in position 0: invalid start byte
根据utf-8方案https://en.wikipedia.org/wiki/UTF-8#Description,字节序列0xc0 0xaf应该以0xc0开头110和0xaf开头有效10.
这是我的python脚本:
def unicode(self):
    '''returns a random (astral) utf encoded byte string'''
    num_bytes = random.randint(1,4)
    if num_bytes == 1:
        return self.gen_utf8(num_bytes, 0x00, 0x7F)
    elif num_bytes == 2:
        return self.gen_utf8(num_bytes, 0xC0, 0xDF)
    elif num_bytes == 3:
        return self.gen_utf8(num_bytes, 0xE0, …我有一个类似的问题: jQuery AJAX 字符编码,但其中提到的任何解决方案都适合我。
\n\n我制作了三个简单的文件来显示问题:
\n\nPHP 文件:
\n\n//prueba.php\necho "n\xc2\xba one two \xe2\x82\xac \xc3\xa1\xc3\xa9\xc3\xad\xc3\xb3\xc3\xba";\nJavaScript 文件(我使用 JQuery)
\n\n//Javascript file\n    function prueba() {\n        $.ajax({\n            type: "GET",\n            contentType: "application/x-www-form-urlencoded;charset=ISO-8859-1",\n            url: "prueba.php",\n        }).done(function( data ) {\n            $("#prueba").text(data); \n            //$("#prueba").html(data); //It does the same encoding error \n        });\n    }\n** HTML 文件:**
\n\n<html>\n    <head>\n        <title>E-COMMERCE</title>\n        <meta content="text/html; charset=iso-8859-1" http-equiv=Content-Type>\n        <meta http-equiv="X-UA-Compatible" content="IE=edge" />\n\n        <script src="javascript/jquery.js" type="text/javascript"></script>\n        <script src="javascript/javascript.js" type="text/javascript"></script>\n    </head>\n\n    <body>\n        <a href="javascript:prueba()">Prueba</a>\n        <div id="prueba"></div>\n    </body>\n\n</html>\n我做我的REST API,我看到了很多的例子人用EntityUtils.toString(response)得到他们response进入String他们的GET,POST,PUT和DELETE方法。与此类似:
HttpGet method = new HttpGet(url);
method.setHeader("content-type", "application/json");
HttpResponse response = httpClient.execute(method);
String responseString = EntityUtils.toString(response.getEntity());
请避免对我说它给我一个字符串的答案
我知道它返回给我一个String实体的内容(在这种情况下是响应),但这是我怀疑的地方,因为我对String返回的内容不放心。我在官方文档中看到了。
读取实体的内容并将其作为字符串返回。
它是content-type什么在返回String?
相反,我通过我的方法获得的值是在String?
我认为这是第二个问题,但我对此并不安全。而且,在这种情况下,这些值如何存储到String? 它们是由逗号或某些特殊字符分隔的吗?
提前致谢!
有很多关于 utf-8 > unicode 转换的问题,但我仍然没有找到我的问题的答案。
让我们有这样的字符串:
a = "Je-li pro za\\xc5\\x99azov\\xc3\\xa1n\\xc3\\xad"
Python 3.6 理解这个字符串就像Je-li pro za\xc5\x99azov\xc3\xa1n\xc3\xad。我需要将此类似 utf-8 的字符串转换为 unicode 表示形式。最终的结果应该是Je-li pro za?azování。
随着a.decode("utf-8")我得到AttributeError: 'str' object has no attribute 'decode',因为 Python 意味着该对象已经被解码。
如果我先用 将它转换为字节bytes(a, "utf-8"),反斜杠只会加倍并再次.decode("utf-8")将其返回到我当前的状态a。
如何获得unicode字符串济利亲咱?azování从这个a?
我在将以下字符串正确写入文件时遇到问题。尤其是“——”这个字。问题出现在我的本地机器 (Windows 7) 和服务器 (Linux) 上
字符串:“Cœurs d'artichauts Grillées”
是否工作(– 正确显示,而撇号被翻译成问号):
Files.write(path, content.getBytes(StandardCharsets.ISO_8859_1));
不起作用(导致文件):
Files.write(path, content.getBytes(StandardCharsets.UTF_8));
根据这个问题的第一个答案,UTF-8 应该也能正确编码 – 。有谁知道我做错了什么?
utf-8 ×5
encoding ×3
iso-8859-1 ×2
unicode ×2
ajax ×1
android ×1
apache ×1
ascii ×1
entity ×1
installation ×1
java ×1
javascript ×1
jquery ×1
latin1 ×1
mysql ×1
php ×1
python ×1
python-3.x ×1
rest ×1
rust ×1