中文编码

windows下使用SBT编译UTF-8编码的java项目出错

拟墨画扇 提交于 2020-02-28 23:29:25
中文windws的默认编码是GBK,如果所使用的java源代码是utf-8编码时,用javac编译的时候会出现如下编码错误, [error] C:\Users\mahen_000\Documents\puffin\workspace\hello\src\main\java\recsys \checkout\KPI.java:23: 错误: 编码GBK的不可映射字符 [error] System.out.println("鍑嗙‘鐜?" + (hit * 1.0) / matrixRecorderNum ber); 如果单用javac的话需要指定编码格式: javac -encoding UTF-8 ,在SBT中可以这样指定,在项目的build.sbt文件中加上如下一行 javacOptions ++= Seq("-encoding", "UTF-8") 即指定SBT调用javac时候的参数, 见SBT官方文档 来源: oschina 链接: https://my.oschina.net/u/780347/blog/208792

今天遇到Mysql 插入数据里有中文字符出现 Incorrect string value 的错误

谁说胖子不能爱 提交于 2020-01-07 06:26:24
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 背景:CMD里直接敲代码插入数据 提示的部分截取为:ERROR 1366 (HY000): Incorrect string value 百度了一下,说是编码问题, show variables like 'character%' 查看后,发现所有编码都为UTF8,并没有错 继续查原因,网上有人说是mysql的编码集的问题以下为原文: " 原来问题出在mysql上,mysql如果设置编码集为utf8那么它最多只能支持到3个字节的UTF-8编码,而4个字节的UTF-8字符还是存在的,这样一来如果你建表的时候用的utf8字符集出异常就理所当然了。 解决方法很简单,修改字段或者表的字符集为utf8mb4。 比较蛋疼的是,字符集utf8mb4在mysql 5.5.3之后才支持。。。 " 看他说的这些结果要升级才能修改,果断放弃,并且也感觉应该不是我遇到的问题。后来想了想,是不是在CMD里输入文字的编码的问题呢,试着先设置客户端命令的编码,再插入果然正确!然后百度搜索客户端编码相关的问题也发现有和我出现过同样问题的。 解决方法 : set names gbk //设置客户端的编码格式,也就是你敲入的是什么编码的,客户端会自动把你的命令转成UTF8,也就是数据库编码也还是UTF8 或者在安装目录下找到 my.ini 把

iconv实现编码转换与中文点阵字库HZK16

懵懂的女人 提交于 2019-12-01 18:58:11
嵌入式开发中中文的识别、显示一直是一个比较让人头疼的问题,这是由于嵌入式系统的精简要求所导致的。我在前一个项目中用Qt做终端的显示界面时,就被中文字符的显示搞得焦头烂额,最后还是在网上下了一个文泉驿的中文字体库才解决问题,不过并不令人满意,主要是字体库太大了,影响了性能。今天在项目中又遇到了中文字符的编码转换和显示问题,趁机学习总结一下。 中文编码与点阵字库 国际标准有UTF-8、UTF-16等,国家标准有GB2312、GB18030、GBK等,至于这些标准的编码实现就不在这里介绍了。编码标准实现中文字符在计算机内部的机器表示,但是怎么将这些内部表示在显示设备上显示出来,则不是编码标准的范畴了,这就需要中文字库的作用。中文字库包含已经做好的显示“模板”(字模),通过中文的编码值来映射汉字在字库中的字模索引,从而使用字模来实现中文显示。 但是大部分的中文字库都是映射国家标准的,如GB2312的HZK16点阵字库。不知道文泉驿字体库是否是直接映射UTF-8,还是也是GB2312。因此,当在程序中涉及两种不同的中文编码方式时,就需要进行编码方式的转换,今天我遇到的就是要实现中文字符UTF-8到GB2312的编码转换。 HZK16是符合GB2312标准16*16的点阵宋体字库,支持的汉字有6763个,符号682个。其中一级汉字有 3755个,按声序排列,二级汉字有3008个,按偏旁部首排列