Android,mysql和渲染非拉丁字符以及拉丁文?

时间:2010-09-22 01:43:56

标签: java php mysql android unicode

这些方块是否表示汉字变为unicode?

编辑:[我在这里输入了正方形,其中有数字进入帖子,但是他们没有渲染]

我想在Android中显示时将其转回原始字符(或者启用mysql只将它们存储为中文字符而不是unicode ???)

BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8);

调试时显示字符串值为  “\ u001a \ u001a \ u001a \ u001a”

 byte[] bytes = chinesestringfromdatabase.getBytes();

把它变成了 “[26,26,26,26]”

String fresh = new String(bytes, "UTF-8");

然后将其转回 编辑:[我在这里输入了正方形,其中包含数字,但它们没有渲染]

我的手机可以显示中文文字。

MySQL charset:UTF-8 Unicode(utf8)

在输入我的问题时,我意识到也许我有错误的字符集。 关于我的问题是否与编码有关,或者它是否与设置有关,或者php是否无法处理字符集,我很遗憾?

我想存储和呈现可能包含多种语言的多种语言字符集。

2 个答案:

答案 0 :(得分:0)

  

我在这里输入了带有数字的方块进入帖子但是它们没有呈现

使用“带有数字的正方形”,你的意思与你在Wikipedia homepage底部的某些异域语言中看到的相同,同时使用 Firefox 浏览器进行浏览? (在所有其他浏览器中-MSIE,Chrome,Safari等 - 你只会看到没有任何空白方块。)

如果为true,那么它只是意味着 font 中的那些字符没有可用的字形,webbrowser / viewer被指示使用。

  

我想存储和呈现可能包含多种语言的多种语言字符集。

一直使用UTF-8。只记住MySQL只支持Unicode的BMP面板(每个字符最多3个字节),而不支持其他面板(每个字符4个字节)。所以SMP面板(包含“特殊”CJK字符)超出了MySQL的范围。

参考

答案 1 :(得分:0)

盒子里的数字是多少?我猜他们是001A?喜欢??

(SO通常会过滤掉这些,因为它们是ASCII控制字符,通常在其他浏览器中不可见。)

  

调试时将字符串值显示为“\ u001a \ u001a \ u001a \ u001a”

很明显,那里没有中文或任何文字可以恢复。原始字符串中的任何信息内容都已丢失。

虽然我同意您需要始终使用UTF-8(对于PHP来说,意味着使用UTF-8 <meta>标记为表单页面提供服务,使用mysql_set_charset('utf8'),并创建MySQL表格UTF-8排序规则),我认为你必须有一个更严重的腐败问题,而不仅仅是UTF-8-vs-other-ASCII-compatible-encoding如果你以某种方式获得相同的控制字符而不是文本字符串。