我在Windows 7机器上使用python 3.1.俄语是默认的系统语言,utf-8是默认编码.
看看上一个问题的答案,我尝试使用"编解码器"模块给我一点运气.以下是一些例子:
>>> g = codecs.open("C:\Users\Eric\Desktop\beeline.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#39>, line 1)
>>> g = codecs.open("C:\Users\Eric\Desktop\Site.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#40>, line 1)
>>> g = codecs.open("C:\Python31\Notes.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 11-12: malformed \N character escape (<pyshell#41>, line 1)
>>> g = codecs.open("C:\Users\Eric\Desktop\Site.txt", …Run Code Online (Sandbox Code Playgroud) 如果我使用以下main()方法运行我的C++应用程序,一切正常:
int main(int argc, char *argv[])
{
cout << "There are " << argc << " arguments:" << endl;
// Loop through each argument and print its number and value
for (int i=0; i<argc; i++)
cout << i << " " << argv[i] << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我得到了我的期望,我的论点被打印出来了.
但是,如果我使用_tmain:
int _tmain(int argc, char *argv[])
{
cout << "There are " << argc << " arguments:" << endl;
// Loop through each argument and print its number and value
for …Run Code Online (Sandbox Code Playgroud) 我正在从Google文档中提取数据,处理数据并将其写入文件(最终我将粘贴到Wordpress页面).
它有一些非ASCII符号.如何将这些安全地转换为可以在HTML源中使用的符号?
目前我正在将所有内容转换为Unicode,在Python字符串中将它们连接在一起,然后执行:
import codecs
f = codecs.open('out.txt', mode="w", encoding="iso-8859-1")
f.write(all_html.encode("iso-8859-1", "replace"))
Run Code Online (Sandbox Code Playgroud)
最后一行有编码错误:
UnicodeDecodeError:'ascii'编解码器无法解码位置12286中的字节0xa0:序数不在范围内(128)
部分解决方案:
这个Python运行时没有错误:
row = [unicode(x.strip()) if x is not None else u'' for x in row]
all_html = row[0] + "<br/>" + row[1]
f = open('out.txt', 'w')
f.write(all_html.encode("utf-8"))
Run Code Online (Sandbox Code Playgroud)
但是如果我打开实际的文本文件,我会看到许多符号,如:
Qur’an
Run Code Online (Sandbox Code Playgroud)
也许我需要写一些文本文件以外的东西?
为什么以下项目失败?为什么它会成功使用"latin-1"编解码器?
o = "a test of \xe9 char" #I want this to remain a string as this is what I am receiving
v = o.decode("utf-8")
Run Code Online (Sandbox Code Playgroud)
结果是:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\encodings\utf_8.py",
line 16, in decode
return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError:
'utf8' codec can't decode byte 0xe9 in position 10: invalid continuation byte
Run Code Online (Sandbox Code Playgroud) 有没有时,你应该实现一个python约定__str__()对__unicode__().我已经看到类的覆盖__unicode__()频率高于__str__()它但看起来并不一致.当一个与另一个相比更好的时候是否有特定的规则?是否有必要/良好做法同时实施?
我想将Unicode骷髅和交叉骨添加到我的shell提示符中(特别是'SKULL AND CROSSBONES'(U + 2620)),但我无法弄清楚魔法咒语使回声吐出它或任何其他, 4位Unicode字符.两位数的一个很容易.例如,echo -e"\ x55",.
除了下面的答案之外,应该注意的是,显然,您的终端需要支持Unicode才能使输出符合您的预期.gnome-terminal做得很好,但默认情况下不一定开启.
在macOS的终端应用程序上转到Preferences-> Encodings并选择Unicode(UTF-8).
我正在阅读SCJP,我对这一行有疑问:
标识符必须以字母,货币字符($)或连接字符(如下划线(_))开头.标识符不能以数字开头!
它声明有效的标识符名称可以以连接字符(如下划线)开头.我认为下划线是唯一有效的选择吗?还有其他什么连接字符?
我目前正在使用Beautiful Soup来解析HTML文件并调用get_text(),但似乎我留下了很多代表空格的\ xa0 Unicode.有没有一种有效的方法可以在Python 2.7中删除所有这些,并将它们更改为空格?我想更普遍的问题是,有没有办法删除Unicode格式?
我尝试使用:line = line.replace(u'\xa0',' '),正如另一个线程所建议的,但是将\ xa0改为你的,所以现在我到处都是"u".):
编辑:问题似乎解决了str.replace(u'\xa0', ' ').encode('utf-8'),但只是.encode('utf-8')没有replace()似乎导致它吐出甚至更奇怪的字符,例如\ xc2.有谁能解释一下?
如何在JavaScript中使用支持Unicode的正则表达式?例如,应该有类似于\ w的东西可以匹配字母或标记类别中的任何代码点(不仅仅是ASCII代码),并且希望像[[P*]]这样的过滤器用于标点符号等.
我想检查一个字符串是否是ASCII格式.
我知道ord(),但是当我尝试时ord('é'),我有TypeError: ord() expected a character, but string of length 2 found.我知道它是由我构建Python的方式引起的(如ord()文档中所述).
还有其他方法可以检查吗?
unicode ×10
python ×6
string ×2
arguments ×1
ascii ×1
bash ×1
c++ ×1
conventions ×1
decode ×1
identifier ×1
java ×1
javascript ×1
parsing ×1
python-2.x ×1
python-3.x ×1
regex ×1
scjp ×1
shell ×1