我编程了一个Android应用程序,它管理要在MySQL数据库中存储和删除的数据(在服务器上)。每当在智能手机上使用特殊字符("ä","ü",...)时,符号转换不良。
在日志中,我可以看到“Umlaut”(例如“ä”)正确传输。我还在我的php文件中使用“SET NAMES‘UTF-8’”,请参见此处:
function connect()
{
....
// Connecting to mysql database
$con = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die(mysql_error());
mysql_query("SET NAMES 'utf8'");
// Selecting database
$db = mysql_select_db(DB_DATABASE) or die(mysql_error()) or die(mysql_error());
return $con;
}
如果我通过Postman启动请求,我可以添加带有特殊字符的单词,例如“TÄST”,json响应如下所示:
{"catId":"35","category":"T\u00c4ST"}
所以单词很好地转换为UTF-8。但是如果我通过智能手机添加一个项目,服务器的响应(检索添加的项目)如下所示:
{"catId":"37","category":"T?ST"}
我在代码中为JSON对象添加参数的位置是(注意,“name”是编辑文本字段的字符串内容):
List<NameValuePair> params = new ArrayList<NameValuePair>();
...
params.add(new BasicNameValuePair("category", catName));
之后发送HTTPRequest:
JSONObject json = jsonParser.makeHttpRequest(url_dest, "POST", params);
如果我打印出参数,“Täst”一词是可见的。。。但不幸的是,我无法检查服务器上到达的是哪个json字符串(因为我对php的了解不好)。那么问题出在哪里呢?在我的android应用程序中还是在服务器上的php文件中?
我必须以任何方式编码传出的json对象吗?
非常感谢你的帮助。
@dafocus,如果您在IDE中将Android应用程序项目设置为UTF-8编码,则应确保应用程序中正确处理UTF-8。它看起来像是某个地方的编码变化。如果整个编码为UTF-8,则可能根本不需要将TÄST
转换为T\u00c4ST
。PHP过去很难使用字符集。我建议您查看PHP,看看处理程序页面是否导致了这种情况(可能)和/或DB-as@madx刚才所说的情况。
要在Eclipse上调试,我建议您:http://projects.eclipse.org/projects/tools.pdt它很容易配置。
控制DB中的编码;也许VARCHAR默认latin1_swedish_ci不能保存该字符串。
解决这一问题的另一种方法是使用apache共享资源:特别http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringEscapeUtils.html以下函数提供的功能:scape eHtml4和unscape eHtml4
我在将文本从UTF-8编码转换为UTF-8编码时遇到问题。这里有字节数组, 我正在将其转换为UTF-8字符串并返回字节数组, 据我所知,这是一个3字节的数组。正当但这是我得到的。 这是什么原因?据我所知,在UTF-8 Specials中,2391189组合被称为替换字符。 这也是一个更大问题的一部分。
问题内容: 我目前正在开发一个Android应用程序,该应用程序从提供JSON数据的API中获取其数据。我将JSON数据的项目存储为字符串,这导致出现一些奇怪的字符(例如’Â’)。我知道这与字符集有关,因此我将InputStreamReader设置为“ UTF-8”,但它似乎没有解决问题。 Log.d“行”给出 有任何想法吗? 问题答案: 尝试以下代码片段代码,当我遇到类似问题时该代码对我有帮助:
我想知道是否有人能帮忙,我很难将UTF-8字符发布到SagePay。数据库是MySQL,带有数据库字符集utf8和数据库排序规则utf8_general_ci。数据库连接字符串使用useUnicode=true 所有发布到数据库的数据都存储为UTF-8,所有查询的数据都显示为UTF-8,但当字符串编码如下时: 然后发到SagePay,他们会收到一个来自国际字符所在位置的乱码字符串。如果字符串中不包
问题内容: UTF-8和UTF-16之间的区别?我们为什么需要这些? 问题答案: 我相信Web上有很多关于此的好文章,但这是一个简短的摘要。 UTF-8和UTF-16都是可变长度编码。但是,在UTF-8中,字符可能至少占据8位,而在UTF-16中,字符长度以16位开始。 UTF-8主要优点: 基本ASCII字符(例如数字,不带重音的拉丁字符等)占据一个字节,与US-ASCII表示形式相同。这样,所
本文向大家介绍php页面,mysql数据库转utf-8乱码,utf-8编码问题总结,包括了php页面,mysql数据库转utf-8乱码,utf-8编码问题总结的使用技巧和注意事项,需要的朋友参考一下 示例一: PHP页面转UTF-8编码问题 1.在代码开始出加入一行: header("Content-Type: text/html;charset=utf-8"); 2.PHP文件编码问题 点击编辑
问题内容: 使用UTF-8编码创建字符串时存在不一致的地方。 运行此代码: 在Java 1.8.0_20(及更早版本)上,我们得到结果 在Java 1.7和1.6上,我们得到正确的结果: 您遇到此错误了吗?有没有解决方法? 对于Shift_JIS,JIS_X0212-1990,x-IBM300,x-IBM834,x-IBM942,x-IBM942C,x-JIS0208来说,这种不一致也很明显,但显