【问题标题】:why my foreign language(malayalam) characters are stored as html characters in database为什么我的外语(马拉雅拉姆语)字符在数据库中存储为 html 字符
【发布时间】:2010-12-02 02:57:04
【问题描述】:

在我的网站中,使用谷歌语言 api,我在文本框和文本区域输入马拉雅拉姆语,

ഇതു ഒരു നല്ല സിനിമ ആണ്

像这样,但是当我查看 mySQL 数据库时,在表中,它是

    ഇതു ഒരു 
നല്ല സിനിമ 
ആണ്  

在我的网站上查看它没有问题,但我在桌面应用程序和该应用程序中使用相同的表数据从 db 获取数据时,它显示为ഇതു ഒരു നല്ല സിനിമ ആണ്
不是我的母语,如果我使用 sql 查询对数据库进行手动更新,那么在网站和我的桌面应用程序中,它都会以我的本地语言正确显示,我的网络服务器是 tomcat。我的 db 是 mySQL db 并且 db 启用了 utf。

我应该在我的 java 应用程序中做什么来以本地语言而不是 സ ..etc 保存直接。

【问题讨论】:

  • 你的语言非常漂亮!但很难阅读;)

标签: html unicode utf-8 char


【解决方案1】:

开头使用Unicode编码

HTML5

<meta charset="utf-8">

HTML 4.01

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

xhtml 1.0

<meta http-equiv="content-type" content="text/html;charset=utf-8" />

xml

<?xml version="1.0" encoding="UTF-8"?>

【讨论】:

    【解决方案2】:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> 
    

    Mallu ഇതു ഒരു നല്ല സിനിമ ആണ്

    【讨论】:

      【解决方案3】:

      您需要确保您的网页以 UTF-8 编码,并在 Content-Type HTTP 标头中声明。否则,当输入假定的页面编码之外的字符时,Web 浏览器可能会选择发送 HTML 转义字符。

      【讨论】:

      • 大多数人不知道这一点,但这是真的。这是浏览器做的最疯狂的事情之一。
      • +1。这种长期存在的可怕行为现在记录在 HTML5 中(“应用程序/x-www-form-urlencoded 编码算法”中的步骤 4.3)。
      • 非常感谢 .. 拯救了我的一天... header('Content-Type: text/html; charset=utf-8');
      【解决方案4】:

      您的网站代码中的某些内容很可能是在将字符存储到数据库之前对字符进行 HTML 编码。

      在数据库插入/更新之前查看您的字符串的确切表示方式。如有必要,在插入数据库之前对数据进行 HTMLDecode。

      【讨论】:

        【解决方案5】:

        停止 HTML 转义您的数据。但请继续对它进行数据库转义。

        【讨论】:

          猜你喜欢
          • 2014-09-16
          • 1970-01-01
          • 1970-01-01
          • 2014-01-26
          • 1970-01-01
          • 2012-04-19
          • 1970-01-01
          • 2012-07-21
          • 2014-04-25
          相关资源
          最近更新 更多