标签: utf-8

如何在Python中将字符串转换为utf-8

我有一个浏览器,它向我的Python服务器发送utf-8字符,但是当我从查询字符串中检索它时,Python返回的编码是ASCII.如何将纯字符串转换为utf-8?

注意:从Web传递的字符串已经是UTF-8编码的,我只想让Python将其视为UTF-8而不是ASCII.

python unicode utf-8 python-2.7

177
推荐指数
9
解决办法
54万
查看次数

将字符串编码为UTF-8

我有一个带有"ñ"字符的字符串,我遇到了一些问题.我需要将此String编码为UTF-8编码.我通过这种方式尝试过,但它不起作用:

byte ptext[] = myString.getBytes();
String value = new String(ptext, "UTF-8");
Run Code Online (Sandbox Code Playgroud)

如何将该字符串编码为utf-8?

java utf-8

176
推荐指数
8
解决办法
90万
查看次数

PHP DOMDocument loadHTML没有正确编码UTF-8

我正在尝试使用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)

php utf-8 character-encoding

174
推荐指数
8
解决办法
9万
查看次数

如何用Java编写UTF-8文件?

我有一些当前的代码,问题是它创建了一个1252代码页文件,我想强制它创建一个UTF-8文件

任何人都可以帮我这个代码,因为我说它目前工作...但我需要强制保存在utf ..我能传递一个参数或什么?

这就是我所拥有的,任何帮助都非常感激

var out = new java.io.FileWriter( new java.io.File( path )),
        text = new java.lang.String( src || "" );
    out.write( text, 0, text.length() );
    out.flush();
    out.close();
Run Code Online (Sandbox Code Playgroud)

java file-io utf-8

171
推荐指数
7
解决办法
34万
查看次数

在Python中将Unicode转换为ASCII而没有错误

我的代码只是抓取一个网页,然后将其转换为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尝试.我可以删除导致问题的任何代码字节而不是出错吗?

python unicode ascii utf-8 character-encoding

170
推荐指数
9
解决办法
46万
查看次数

如何确定OSX中的文件编码?

我正在尝试将一些UTF-8字符输入到TextMate中的LaTeX文件中(其默认编码为UTF-8),但LaTeX似乎并不理解它们.Running cat my_file.tex在Terminal中正确显示字符.跑步ls -al显示我以前从未见过的东西:文件列表中的"@":

-rw-r--r--@  1 me      users      2021 Feb 11 18:05 my_file.tex
Run Code Online (Sandbox Code Playgroud)

(而且,是的,我正在使用\usepackage[utf8]{inputenc}LaTeX.)

我发现了iconv,但似乎无法告诉我编码是什么 - 它只会在我弄清楚之后转换.

macos encoding latex utf-8

164
推荐指数
7
解决办法
20万
查看次数

为什么我们不应该在py脚本中使用sys.setdefaultencoding("utf-8")?

我见过很少的py脚本在脚本的顶部使用它.在什么情况下应该使用它?

import sys
reload(sys)
sys.setdefaultencoding("utf-8")
Run Code Online (Sandbox Code Playgroud)

python encoding utf-8 python-2.x sys

158
推荐指数
3
解决办法
18万
查看次数

在Django中保存unicode字符串时,MySQL"错误的字符串值"错误

尝试将first_name,last_name保存到Django的auth_user模型时,我收到了奇怪的错误消息.

失败的例子

user = User.object.create_user(username, email, password)
user.first_name = u'Rytis'
user.last_name = u'Slatkevi?ius'
user.save()
>>> Incorrect string value: '\xC4\x8Dius' for column 'last_name' at row 104

user.first_name = u'???????'
user.last_name = u'????????'
user.save()
>>> Incorrect string value: '\xD0\x92\xD0\xB0\xD0\xBB...' for column 'first_name' at row 104

user.first_name = u'Krzysztof'
user.last_name = u'Szukie?oj?'
user.save()
>>> Incorrect string value: '\xC5\x82oj\xC4\x87' for column 'last_name' at row 104
Run Code Online (Sandbox Code Playgroud)

成功的例子

user.first_name = u'Marcin'
user.last_name = u'Król'
user.save()
>>> SUCCEED
Run Code Online (Sandbox Code Playgroud)

MySQL设置

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name …
Run Code Online (Sandbox Code Playgroud)

python mysql django unicode utf-8

150
推荐指数
6
解决办法
11万
查看次数

PHP:如何删除字符串中的所有不可打印字符?

我想我需要删除0-31和127的字符,

是否有一个函数或一段代码来有效地执行此操作.

php ascii utf-8

147
推荐指数
11
解决办法
20万
查看次数

PHP:在不知道原始字符集的情况下将任何字符串转换为UTF-8,或者至少尝试

我有一个应用程序来处理来自世界各地的客户,当然,我希望进入我的数据库的所有内容都是UTF-8编码的.

对我来说主要的问题是我不知道任何字符串的来源是什么编码 - 它可以来自文本框(使用<form accept-charset="utf-8">仅在用户实际提交表单时才有用),或者它可能是从上传的文本文件,所以我真的无法控制输入.

我需要的是一个函数或类,它确保进入我的数据库的内容尽可能采用UTF-8编码.我已经尝试iconv(mb_detect_encoding($text), "UTF-8", $text); 但是有问题(如果输入是'fiancée'它返回'fianc').我尝试了很多东西= /

对于文件上传,我喜欢要求最终用户指定他们使用的编码,并向他们展示输出结果的预览,但这对于讨厌讨厌的黑客没有帮助(事实上,它可以使他们的生活更容易一点).

我已经阅读了关于这个主题的其他SO问题,但它们似乎都有微妙的差异,例如"我需要解析RSS提要"或"我从网站上搜集数据"(或者,实际上,"你不能").

但必须有一些东西至少有一个好的尝试!

php utf-8 character-encoding

143
推荐指数
4
解决办法
27万
查看次数