这些方块是否表示汉字变为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是否无法处理字符集,我很遗憾?
我想存储和呈现可能包含多种语言的多种语言字符集。
答案 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如果你以某种方式获得相同的控制字符而不是文本字符串。