Java 英语音标无法显示。

左大神在这 2013-06-15 11:36:22
需求描述:在页面输入英语音标,通过JAVA程序处理,存入MYSQL数据库。
问题描述:由于在插入DB前,音标显示为乱码,导致无法插入数据库。
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that c
orresponds to your MySQL server version for the right syntax to use near 't?kj?l?] ','[p?'t?kj?l?]','1','null')' at line

其他说明:JAVA文件编码格式为utf-8,已经测试,中文可以正常显示。就是音标不行,音标中的音标字符显示为问号。
另外,写了个测试文件:
public class Test {
public static void main(String args[]) {

System.out.println("particular [pɚ'tɪkjəlɚ]adj. 特别的;详细的;独有的;挑剔的n. 详细说明;个别项目");
}

}
在CMD控制台测试:
D:\project\stefan\src>javac -encoding utf-8 com/stefan/learn/action/Test.java

D:\project\stefan\src>java com/stefan/learn/action/Test
particular 报错 英[p?'t?kj?l?] 美[p?'t?kj?l?]adj. 特别的;详细的;独有的;挑剔的n. 详细说明;个别项目


还是不能显示音标。

尝试添加了音标所有的字体到系统中,还是不能解决。。


有没有高手知道怎么回事,谢谢。。。非常感谢





...全文
416 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
水上冰石 2013-10-09
  • 打赏
  • 举报
回复
同问,楼主兄弟,找到解决问题方法了没有,我也遇到这个问题。刚试过:页面显示可以用把gbk下的音标放到utf-8页面上,但是传递之后某些字符还是会乱码的,是否需要特殊字符处理?
摆烂办不到 2013-06-17
  • 打赏
  • 举报
回复
java比较特殊 没法像c++那样能够正确打印ASCII的扩展字符 我记得要下载一些插件才可以 楼主不信可以分别在c++里面和java里面用循环打印出ASCII的扩展字符 java基本都是乱码
caofeng891102 2013-06-17
  • 打赏
  • 举报
回复
接分。
左大神在这 2013-06-15
  • 打赏
  • 举报
回复
楼上的兄弟你那样,连中文都显示不出来,还不说英标,不过还是谢谢。
rumlee 2013-06-15
  • 打赏
  • 举报
回复
命令提示符下,默认是用gbk字符集显示。 需要显示utf-8字符,需要按照如下操作。 运行cmd 然后在命令提示符下输入如下: chcp 65001 然后再点击命令提示符窗口左上角的系统图标,选择系统菜单“属性”,设置字体为Lucida Console 然后再运行你的java命令应该可以显示。
caofeng891102 2013-06-15
  • 打赏
  • 举报
回复
接分。
WingSpread 2013-06-15
  • 打赏
  • 举报
回复 1
在eclipse中,运行1L的测试文件,会提示不支持文件编码方式,因为我的eclipse使用GBK编码方式 但同时会给出选项,有一个选项是“保存为UTF-8格式”,选中后保存,运行成功,无乱码
在推上fo了个toefl单词机器人,没想到很多单词的音标显示成了小方块,那就是android默认的英文字体对某些英语国际音标不支持了,当然我的Galaxy S刷了第三方ROM的,不过从网上的帖子来看,官方的字体存在一样的问题,总而言之是字体的问题了。 也搜了一些帖子,但没有很好的解决方案,默认的英文字体还是挺美观的,只是某些英语音标的编码位上缺失了相应的字符而已,Anroid使用Java作为默认开发环境,那默认的字体也应该是使用UNICODE UCS编码的,事实证明的却如此。那就很简单了,强大的字体编辑工具FontForge派上用场了。 Ubuntu仓库里面的版本太低了,可以使用GetDeb仓库来安装最新版本的FontForge。用FontForge打开Android默认的英文字体DroidSans.ttf,果然国际音标编码区域空空如也,英语音标现实不完全也就一点儿也不奇怪了。从国际音标wiki上查找到了这写符号的UNICODE编码,从DejaVuSerif.ttf和Gothic.ttf这两个字体里面提取了对应的字形(glyph)插入到DroidSans.ttf相应的BMP(Basic Multilingual Plane)编码位上。当然只补充了英语音标会用到的字符,包括ɑ,ɒ,ɔ,ə,ɛ,ɜ,ɪ,ɵ,ʃ,ʌ,ʒ,ʤ,ʦ,ʧ这几个常用音标字符。默认的字体竟然连重音(primary stress)和次重音(Secondary stress)这两个符号都没有,一并补齐了。 将制作好的字体覆盖Android默认英文字体/system/fonts/DroidSans.ttf,当然需要root权限,再看英语音标显示的相当完美了,google dictionary里面的音标也完全没有问题。

62,630

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧