【问题标题】:Swedish characters don't work in Android Studio when reading from database从数据库读取时,瑞典语字符在 Android Studio 中不起作用
【发布时间】:2016-01-09 22:33:13
【问题描述】:

我正在尝试从数据库中读取结果并在 Android 中的 TextView 中显示结果,它一直有效,直到句子中出现瑞典字母,否则 TextView 显示为空。 在数据库中一切正常,即使瑞典字母在那里也能完美运行,但问题出在 Android 上。

我在 Android 中使用 UTF-8,在数据库列中使用 utf8-general-ci。

编辑: 这个PHP函数解决了我的问题

/* Change data-type from string to integar or float if required.
 * If string detected then utf8_encode() it. */
function cast_data_types ($value) {
  if (is_array($value)) {
    $value = array_map('cast_data_types',$value);
    return $value;
  }
  if (is_numeric($value)) {
    if(strpos('.', $value)===false) return (float)$value;
    return (int) $value;
  }
  return utf8_encode((string)$value);
}

json_encode (cast_data_types($data));

【问题讨论】:

标签: android database character letters non-english


【解决方案1】:

我认为您需要将数据库中的值读取为byte[],然后在显示之前使用new String(bytes,"ISO-8859-1") 将其编码为String

【讨论】:

  • 我正在使用 JSON 获取信息,如下所示: JSONObject json_data = new JSONObject(result); pname = (json_data.getString("name"));
  • 那么你得到的 pname 的值是多少?
  • 正如我之前所说,我得到的是正确的,但是当名称包含瑞典字母,如 å ä ö 时,我在显示名称的 TextView 中得到空值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-30
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多