在一般的日文字符表示正常的情况下正波浪线“~”任然经常会出现乱码的情况。
数据库参数NLS Database Parameters
NLS_CHARACTERSET JA16SJIS
NLS_NCHAR_CHARACTERSET AL16UTF16
一:对于VARCHAR2字段
现象:在页面上输入“~”存入DB后再取出到页面时变成“?”(页面的字符设置为charset=shift-jis)
调查:
1 页面提交后在java中观察编码为\uff5e
2 java中定义一个字符变量“~”观察编码为\uff5e
3 编码为\uff5e的字符存入数据库再取出的编码为\u301c
4 用Object Browser观察数据库中字符都正常
结论:存入数据库时编码发生了变化\uff5e ---> \u301c
解决:取出数据时遍历发现\u301c就转换为\uff5e
public String getString(int columnIndex) throws SQLException {
// TODO: ~を変更
String value = rs.getString(columnIndex);
if (value != null){
StringBuffer sbDest = new StringBuffer();
char ch;
for(int j= 0;j< value.length();j++){
ch = value.charAt(j);
if(ch == 0x301c){
sbDest.append("\uff5e"); // ~
}else{
日文字符中常见的乱码情况---正波浪线“~”
最新推荐文章于 2022-09-10 12:50:21 发布