问题:游戏中的字符编码!1.2.4框架。
上下文:我们正在尝试存储文本“《我叫mt公司繁體版》台港澳專屬伺服器上線!" 从输入文本字段到mysql使用播放!1.2.4框架。
我们遵循的步骤:
1) 获取用户输入的ui。任何语言文字,所以我们试了日语字符。注:页面设置为utf-8字符编码。
2) 投稿后玩!控制器,控制器只是读取输入并使用play存储它!模型。下面提到的片段,
public static void text_create() throws UnsupportedEncodingException,
ParseException {
System.out.println("params :: text string value :: " + params.get("text"));
String oldString = params.get("text");
// Converting the input string(which is UTF-8 format) and parsing to Windown-1252
String newString = new String(oldString.getBytes(), "WINDOWS-1252");
// 1. passing encoded text to mysql.
// 2. TextCheck table and the column 'text' has encoding and collation format as UTF-8.
// 3. TextCheck > text column mentioned as String in model.
TextCheck a = new TextCheck(newString);
List<Object> text = TextCheck.TextList();
render(a,text);
}
它将文本值存储为“〚我å�«mt公司ç¹�體版》å�°æ¸¯æ¾³å°ˆå±¬ä¼ºæœ�器业線ï¼�"
问题是有性格� 介于两者之间。当我使用java、ruby或其他语言等其他平台从mysql读取这些原始数据时,它会进行转换,但会使� 字符是垃圾。只是垃圾。
注:有趣的是,当我读它从同一个发挥!框架。即使垃圾字读对了,看起来也很好。
问:为什么是那些垃圾角色?
1条答案
按热度按时间8fq7wneg1#
问题如下:
这在我看来像是胡说八道。java使用utf-16在内部存储所有字符串,因此您不能用这里尝试的方式调整java字符串的编码。
这个
getBytes()
方法返回使用默认平台编码的字符串字节。然后使用(可能)不同的字符集将这些字节转换成一个新字符串。结果几乎肯定会被打破。