Android无法通过json接收utf8字符

2024-09-24 22:28:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在构建一个简单的Android应用程序,它通过json将项目发送到pythonweb服务,以便存储在sqlite数据库中。这一部分工作得很好,当回忆起这些物品时,它们有正确的“åääää”字符。在

当我将这些项放在json中返回到应用程序(使用下面的代码)时,我不再那么确定了。我得到的不是'xc3\xb6',而不是'xc3\xb6',我相信这将是utf-8的表示形式?在

    connection = sqlite3.connect('database.db')
    connection.text_factory = str
    cursor = connection.cursor()

    cursor.execute("SELECT item, number FROM Items")
    rows = cursor.fetchall()
    jsobj = []

    for row in rows:
    jsobj.append({'number':row[1], 'item':row[0]})

无法在我的应用程序中解析json\xci'3

以下是Android代码:

^{pr2}$

结果发送到另一个函数:

    ArrayList<Vara> varor = new ArrayList<Vara>();
    String vara = "";
    int antal;

    for (int i = 0; i < json.length(); i++) {
        JSONObject object;
        try {
            object = json.getJSONObject(i);
            try {
                try {
                    vara = new String(object.getString("vara").getBytes("ISO-8859-1"), "utf-8");
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }   System.out.println(vara);
                antal = object.getInt("antal");
                varor.add(new Vara(vara, antal));
            } catch (JSONException e) {
                e.printStackTrace();
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

    }

    return varor;

除了特殊人物,一切都很好。请帮帮我,我快疯了。在


Tags: json应用程序newobjectconnectioncursorandroidrow
1条回答
网友
1楼 · 发布于 2024-09-24 22:28:51

b'\xc3\xb6'是可以解码为包含单个^{} Unicode codepoint的Unicode字符串的bytestring:

>>> b'\xc3\xb6'.decode('utf-8')
u'\xf6'

默认情况下,^{} is set to ^{} for ^{}也就是说,如果从代码中删除connection.text_factory = str,则应该收到TEXT对象的Unicode字符串。在

相关问题 更多 >