考虑:

这是真的unicode=utf16吗?
许多人说Unicode是标准,而不是编码,但大多数编辑器实际上支持另存为Unicode 编码.
问题是如何将wstring转换为字符串?
我有下一个例子:
#include <string>
#include <iostream>
int main()
{
std::wstring ws = L"Hello";
std::string s( ws.begin(), ws.end() );
//std::cout <<"std::string = "<<s<<std::endl;
std::wcout<<"std::wstring = "<<ws<<std::endl;
std::cout <<"std::string = "<<s<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)
注释掉的输出是:
std::string = Hello
std::wstring = Hello
std::string = Hello
Run Code Online (Sandbox Code Playgroud)
但不仅仅是:
std::wstring = Hello
Run Code Online (Sandbox Code Playgroud)
这个例子有什么不对吗?我可以像上面那样进行转换吗?
编辑
新的例子(考虑到一些答案)是
#include <string>
#include <iostream>
#include <sstream>
#include <locale>
int main()
{
setlocale(LC_CTYPE, "");
const std::wstring ws = L"Hello";
const std::string s( ws.begin(), ws.end() );
std::cout<<"std::string = "<<s<<std::endl;
std::wcout<<"std::wstring = "<<ws<<std::endl;
std::stringstream ss;
ss …Run Code Online (Sandbox Code Playgroud) 我有一个浏览器,它向我的Python服务器发送utf-8字符,但是当我从查询字符串中检索它时,Python返回的编码是ASCII.如何将纯字符串转换为utf-8?
注意:从Web传递的字符串已经是UTF-8编码的,我只想让Python将其视为UTF-8而不是ASCII.
Unicode有一百万个类似图标的字形,但它们很难搜索.
是否有一个看起来像"双目"或"放大镜"的Unicode字形?或者是否有一个用于表示"搜索"的符号,它是用Unicode格式的?
我读过并听说C++ 11支持Unicode.关于这一点的一些问题:
std::string做自己应该?我从来不确定我理解str/unicode解码和编码之间的区别.
我知道这str().decode()是因为当你有一个字符串,你知道它有一定的字符编码,给定编码名称它将返回一个unicode字符串.
我知道unicode().encode()根据给定的编码名称将unicode字符转换为字符串.
但我不明白是什么str().encode(),unicode().decode()是为了什么.任何人都可以解释,并可能还纠正我上面遇到的任何其他错误吗?
编辑:
几个答案给出了.encode关于字符串上的内容的信息,但似乎没有人知道.decodeunicode 是做什么的.
我想在我的一些Jekyll博客文章中描述目录和文件结构,Markdown是否提供了输出这样一个东西的简洁方法?
例如,您可以在 Jekyll网站上的此链接中看到目录和文件结构在页面上非常整齐地输出:
.
??? _config.yml
??? _drafts
| ??? begin-with-the-crazy-ideas.textile
| ??? on-simplicity-in-technology.markdown
??? _includes
| ??? footer.html
| ??? header.html
??? _layouts
| ??? default.html
| ??? post.html
??? _posts
| ??? 2007-10-29-why-every-programmer-should-play-nethack.textile
| ??? 2009-04-26-barcamp-boston-4-roundup.textile
??? _data
| ??? members.yml
??? _site
??? index.html
Run Code Online (Sandbox Code Playgroud)
我相信上面的行块字符是Unicode(如此答案中所述),但不确定Markdown或不同浏览器如何处理它们.我希望Markdown已经包含了一些这样做的方法,输出可能是上面的Unicode字符.
在Ruby on Rails 3(目前正在使用Beta 4)中,我看到当使用form_tag或form_for帮助时,会出现一个名为_snowman☃(Unicode\x9731)的隐藏字段.
那么,这是为了什么?
我的代码只是抓取一个网页,然后将其转换为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尝试.我可以删除导致问题的任何代码字节而不是出错吗?
在Oracle中,有什么区别:
CREATE TABLE CLIENT
(
NAME VARCHAR2(11 BYTE),
ID_CLIENT NUMBER
)
Run Code Online (Sandbox Code Playgroud)
和
CREATE TABLE CLIENT
(
NAME VARCHAR2(11 CHAR), -- or even VARCHAR2(11)
ID_CLIENT NUMBER
)
Run Code Online (Sandbox Code Playgroud)