android utf-8一个英文字符占多少比特位,特殊字符ÅÖÄ在JSON配对Android期间使用UTF-8编码显示 字符(Special characters Å Ö Ä showing � c...

特殊字符ÅÖÄ在JSON配对Android期间使用UTF-8编码显示 字符(Special characters Å Ö Ä showing � character using UTF-8 encoding during JSON paring Android)

我没有得到任何线索,为什么特殊字符ÅÖÄ在使用JSON配对Android时使用UTF-8编码显示 字符。 以下是我正在使用的代码。

myjson.put("name", "ÅsdfÖ"));

entity = new StringEntity(myjson.toString());

entity.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json; charset=utf-8"));

HttpPost httppost=new HttpPost(URL);

httppost.setHeader("content-Type", "application/json");

httppost.setHeader("accept", "application/json");

httppost.setHeader("Authorization", "token");

httppost.setEntity(entity);

响应我得到了“名字”:“ sdf ”并在后端网页中显示相同内容。

虽然我使用UTF-8端到端发送它但我没有得到问题的位置?

I am not getting any clue why Special characters Å Ö Ä showing � character using UTF-8 encoding during JSON paring Android. The following is the code i am using.

myjson.put("name", "ÅsdfÖ"));

entity = new StringEntity(myjson.toString());

entity.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json; charset=utf-8"));

HttpPost httppost=new HttpPost(URL);

httppost.setHeader("content-Type", "application/json");

httppost.setHeader("accept", "application/json");

httppost.setHeader("Authorization", "token");

httppost.setEntity(entity);

The response i am getting like "name": "�sdf� and also showing the same in backend webpage.

I am not getting where is the problem though i am sending it using UTF-8 endconding ?

原文:https://stackoverflow.com/questions/27019983

更新时间:2019-12-06 17:35

最满意答案

尝试这个

HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost(url);

JSONObject myjson= new JSONObject();

myjson.put("name", "ÅsdfÖ"));

httppost.setEntity(new StringEntity(myjson.toString(), "UTF-8"));

httpResponse = httpclient.execute(httppost);

如果它适合您,请将答案标记为正确。

Try this

HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost(url);

JSONObject myjson= new JSONObject();

myjson.put("name", "ÅsdfÖ"));

httppost.setEntity(new StringEntity(myjson.toString(), "UTF-8"));

httpResponse = httpclient.execute(httppost);

Mark answer as right if it works for you.

2014-11-19

相关问答

默认情况下,泽西应该总是生成utf-8,听起来像是你的客户端没有正确解释它的问题(xml声明没有“使”utf-8,只是告诉客户端如何解析它)。 你有什么客户看到这些问题? 有效的JSON只能是Unicode(utf-8/16/32); 解析器应该能够自动检测编码(当然有些不要),所以在JSON中没有编码声明。 您可以将其添加到Content-Type如下所示: @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")

Jersey shou

...

你的文本已经被编码了,你需要通过在你的字符串中使用b前缀来告诉Python,但是由于你使用的是json,并且输入需要是字符串,你必须手动解码你的编码文本。 由于您的输入不是字节,您可以使用'raw_unicode_escape'编码将字符串转换为字节而无需编码,并防止open方法使用其自己的默认编码。 然后,您可以简单地使用上述方法来获得所需的结果。 请注意,由于您需要执行编码和解码,您必须读取文件内容并对加载的字符串执行编码,那么您应该使用json.loads()而不是json.load() 。

...

我有同样的问题,因为有文件与Windows-1251编码和西里尔语注释。 在基于IntelliJ IDEA的Android Studio中,您可以通过两种方式解决此问题: a)将文件编码转换为UTF-8或 b)在build.gradle脚本中设置正确的文件编码: android {

...

compileOptions.encoding = 'windows-1251' // write your encoding here

...

要转换文件编码,请使用IDE右下角的菜

...

Character没有UTF-8表示的直接(公共)访问器。 Character.swift中有一些内部方法处理UTF-8字节,但公共内容是在String.UTF8View中实现的 。 因此String(myChar).utf8.count是获取UTF-8表示字符长度的正确方法。 Character has no direct (public) accessor to its UTF-8 representation. There are some internal methods in Chara

...

我遇到了同样的问题,而@sunny_dev的回答对我有用 。 我不明白为什么没有这个问题的答案,所以我正在更新这个问题。 @sunny_dev回答: Karol,我通过打开并将TextPad中的.properties文件保存为“UTF-8”编码和“Unix”平台解决了这个问题。 我采用了相同的方法,但是在Notepad ++中没有早期的积极结果。 - sunny_dev 再次感谢@sunny_dev I was having the same issue and @sunny_dev's answ

...

尝试这个 HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost(url);

JSONObject myjson= new JSONObject();

myjson.put("name", "ÅsdfÖ"));

httppost.setEntity(new StringEntity(myjson.toString(), "UTF-8

...

看起来,MySQL(php)客户端确实承担了另一种客户端编码,而不是UTF-8。 您可以使用请求正确的编码 $dbhconnect->exec("SET NAMES utf8");

直接连接到数据库后。 或者,您可以在连接配置中使用PDO :: MYSQL_ATTR_INIT_COMMAND(请参阅http://php.net/manual/de/ref.pdo-mysql.php ): $dbconnect = new PDO("mysql:host=$host;dbname=$databas

...

将String转换为UTF-8的正确方法是getBytes()调用getBytes() : byte[] fname = _fnameText.getText().toString().getBytes(UTF8);

你这样做很好,但是你正在做那些不合适的输出。 您的第一个示例是错误的,因为您使用Java的默认字符集将UTF-8字节转换回String ,这显然不是您系统上的UTF-8。 您的第二个示例是错误的,因为您在HTTP逻辑的错误阶段手动对UTF-8字节进行URL编码。 您根本不应将单个输

...

你可以尝试添加 "SET NAMES UTF-8"

刚连接数据库后的Sql语句。 You can try adding "SET NAMES UTF-8"

Sql statement just after your connection to database.

删除以下行: outtweets = [[str(tweet.text.encode("utf-8"))] for tweet in correct_date_tweet]

原因如下: 您正在编码为字节字符串。 因此b 。 你没有定义编码使用str 。 在这种模式下,您将获得数组的表示 ,包括类型,因此b和UTF-8转义。 您无需在代码中间进行编码。 仅在写入文件或网络时进行编码(而不是在打印时)。 如果你使用open()的内置编码器,你很少需要自己调用.encode() 。 在文本模式下使用

...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值