我想将Unicode骷髅和交叉骨添加到我的shell提示符中(特别是'SKULL AND CROSSBONES'(U + 2620)),但我无法弄清楚魔法咒语使回声吐出它或任何其他, 4位Unicode字符.两位数的一个很容易.例如,echo -e"\ x55",.
除了下面的答案之外,应该注意的是,显然,您的终端需要支持Unicode才能使输出符合您的预期.gnome-terminal做得很好,但默认情况下不一定开启.
在macOS的终端应用程序上转到Preferences-> Encodings并选择Unicode(UTF-8).
什么是ANSI编码格式?它是系统默认格式吗?它与ASCII有什么不同?
垂直制表符的原始历史用法是什么(\v在C语言中,ASCII 11)?
键盘上有钥匙吗?有人是如何生成它的?
是否有任何语言或系统仍在使用,垂直制表符会做一些有趣和有用的事情?
我&在我的网站上使用带有HTML5和UTF-8的符号<title>.Google在其SERP上显示的&符号很好,其标题中的所有浏览器也是如此.
http://validator.w3.org给了我这个:
并没有开始角色参考.(可能应该被转义为
&.)
我真的需要做&吗?
我并不是为了验证我的页面而感到困惑,但是我很想听听人们对此的看法,以及它是否重要以及为什么.
这是我的代码,
for line in open('u.item'):
#read each line
Run Code Online (Sandbox Code Playgroud)
每当我运行此代码时,它会给出以下错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
Run Code Online (Sandbox Code Playgroud)
我试图解决这个问题并在open()中添加一个额外的参数,代码看起来像;
for line in open('u.item', encoding='utf-8'):
#read each line
Run Code Online (Sandbox Code Playgroud)
但它再次给出了同样的错误.那我该怎么办!请帮忙.
我从来不确定我理解str/unicode解码和编码之间的区别.
我知道这str().decode()是因为当你有一个字符串,你知道它有一定的字符编码,给定编码名称它将返回一个unicode字符串.
我知道unicode().encode()根据给定的编码名称将unicode字符转换为字符串.
但我不明白是什么str().encode(),unicode().decode()是为了什么.任何人都可以解释,并可能还纠正我上面遇到的任何其他错误吗?
编辑:
几个答案给出了.encode关于字符串上的内容的信息,但似乎没有人知道.decodeunicode 是做什么的.
我正在尝试使用DOMDocument解析一些HTML,但是当我这样做时,我突然失去了编码(至少这对我来说是这样).
$profile = "<div><p>various japanese characters</p></div>";
$dom = new DOMDocument();
$dom->loadHTML($profile);
$divs = $dom->getElementsByTagName('div');
foreach ($divs as $div) {
echo $dom->saveHTML($div);
}
Run Code Online (Sandbox Code Playgroud)
这段代码的结果是我得到了一堆不是日语的字符.但是,如果我这样做:
echo $profile;
Run Code Online (Sandbox Code Playgroud)
它显示正确.我尝试过saveHTML和saveXML,但都没有正确显示.我使用的是PHP 5.3.
我所看到的:
ã¤ãªãã¤å·ã·ã«ã´ã«ã¦ãã¢ã¤ã«ã©ã³ãç³»ã®å®¶åºã«ã9人åå¼ã®5çªç®ã¨ãã¦çã¾ãããå½¼ãå«ãã¦4人ã俳åªã«ãªã£ããç¶è¦ªã¯æ¨æã®ã»ã¼ã«ã¹ãã³ã§ãæ¯è¦ªã¯éµä¾¿å±ã®å®¢å®¤ä¿ã ã£ãã髿 ¡æä»£ã¯ãã£ãã£ã®ã¢ã«ãã¤ãã«å¤ãã¿ãæè²è³éãåããªããã«ããªãã¯ç³»ã®é«æ ¡ã¸é²å¦ã
Run Code Online (Sandbox Code Playgroud)
应该展示什么:
???????????????????????9????5???????????????4???????????????????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
编辑:我已将代码简化为五行,以便您自己测试.
$profile = "<div lang=ja><p>???????????????????????</p></div>";
$dom = new DOMDocument();
$dom->loadHTML($profile);
echo $dom->saveHTML();
echo $profile;
Run Code Online (Sandbox Code Playgroud)
这是返回的html:
<div lang="ja"><p>イリノイ州シカゴã«ã¦ã€ã‚¢ã‚¤ãƒ«ãƒ©ãƒ³ãƒ‰ç³»ã®å®¶åºã«ã€</p></div>
<div lang="ja"><p>???????????????????????</p></div>
Run Code Online (Sandbox Code Playgroud) 我的代码只是抓取一个网页,然后将其转换为Unicode.
html = urllib.urlopen(link).read()
html.encode("utf8","ignore")
self.response.out.write(html)
Run Code Online (Sandbox Code Playgroud)
但我得到一个UnicodeDecodeError:
Traceback (most recent call last):
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/__init__.py", line 507, in __call__
handler.get(*groups)
File "/Users/greg/clounce/main.py", line 55, in get
html.encode("utf8","ignore")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 2818: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
我认为这意味着HTML包含一些在某处错误形成的Unicode尝试.我可以删除导致问题的任何代码字节而不是出错吗?
我一直把这条指令视为已转交给我的众多CSS文件的第一行:
@charset "UTF-8";
Run Code Online (Sandbox Code Playgroud)
它做了什么,这是必要的吗?
另外,如果我在我的"head"元素中包含这个元标记,那么是否可以消除在我的CSS文件中也存在它的需要?
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序来处理来自世界各地的客户,当然,我希望进入我的数据库的所有内容都是UTF-8编码的.
对我来说主要的问题是我不知道任何字符串的来源是什么编码 - 它可以来自文本框(使用<form accept-charset="utf-8">仅在用户实际提交表单时才有用),或者它可能是从上传的文本文件,所以我真的无法控制输入.
我需要的是一个函数或类,它确保进入我的数据库的内容尽可能采用UTF-8编码.我已经尝试iconv(mb_detect_encoding($text), "UTF-8", $text);
但是有问题(如果输入是'fiancée'它返回'fianc').我尝试了很多东西= /
对于文件上传,我喜欢要求最终用户指定他们使用的编码,并向他们展示输出结果的预览,但这对于讨厌讨厌的黑客没有帮助(事实上,它可以使他们的生活更容易一点).
我已经阅读了关于这个主题的其他SO问题,但它们似乎都有微妙的差异,例如"我需要解析RSS提要"或"我从网站上搜集数据"(或者,实际上,"你不能").
但必须有一些东西至少有一个好的尝试!