当前位置: 首页 > 面试题库 >

Java + Mysql UTF8问题

晏晨朗
2023-03-14
问题内容

如标题所述,我在java和mysql之间有问题

mysql数据库,表和列是utf8_unicode_ci。我有一个应用程序,它从xml中获取一些输入,然后编写查询…

public String [] saveField(String xmltag, String lang){     
  NodeList nodo = this.doc.getElementsByTagName(xmltag);
  String [] pos = new String[nodo.getLength()];     
  for (int i = 0 ; i < nodo.getLength() ; i++ ) {
     Node child = nodo.item(i);
     pos[i] =  "INSERT INTO table (id, lang, value) VALUES (" +
        child.getAttributes().getNamedItem("id").getNodeValue().toString() + " , " +
        lang + " , " + 
        "'" + child.getFirstChild().getTextContent() + "'" +
        ");";       
    }   
   return pos;
}

此方法返回包含一个或多个SQL插入查询的String数组。然后

Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql:///dbname", "user", "pass");
.....
Statement s; s =
this.con.createStatement ();
s.execute(query);

s.execytes.executeUpdate特殊字符都存储为?

因此特殊字符无法正确存储: מסירות קצרות存储为?????????

Hi! 存储为 Hi!

有什么建议吗?

谢谢


问题答案:

解决了,我忘了在初始化Connection时添加编码:

之前是:

con = DriverManager.getConnection("jdbc:mysql:///dbname", "user", "pass");

工作中):

con = DriverManager.getConnection("jdbc:mysql:///dbname?useUnicode=true&characterEncoding=utf-8", "user", "pass");



 类似资料:
  • 现在项目里有个逻辑关于数据流程状态的,两个用户在各自客户端同一个审核页面操作更新同一条数据,用户A做审核通过,用户B再审核驳回。 现有的方案是两边接口都传待审核的状态过去给接口校验,用户B点的审核页可能会获取最新数据状态,但也要存下其他用户操作前的待审核状态,我觉着这太麻烦了不符合逻辑,直接接口里拿最新的数据状态和要操作的类型比对不就行了,大家怎么看这种逻辑是否合适?

  • 问题内容: 我应该输入一个字符串,并更换所有and,to,you,和for与子和4。 输入字符串时,仅and在打印时输出。 输出:and and 似乎在第一个空格后切断了返回的字符串 我不知道发生了什么,为什么不按预期工作。我究竟做错了什么? 问题答案: 这是我简化您的代码并获得正确结果的方式:

  • 我试图创建一个聊天客户端,我从javaSpace返回一条消息,然后设置newMessage=true;因此,客户端可以看到需要读取的新消息。 那么对于客户来说, 此时将始终返回\u messager。messageRead是真的,尽管我刚刚把它设置得太假了。如果我取消注释//系统。出来println(温度);由于某种原因,布尔值将被更新,它也将等于它的含义。 我以前从未遇到过这个错误,对我来说非常

  • 问题内容: 我编写了一个简单的Java程序,该程序将字节发送到并行端口,该程序使用.dll以及其他两个类(pPort.java和ioPort.java)来完成此操作,并且运行良好。 但是,我开始在NetBeans IDE上制作另一个具有类似功能的程序。它可以完美地编译,但是当我运行它时,我得到: 据我了解,它无法调用我放在System32上的.dll文件。但是我不明白为什么,因为另一个基本相同但在

  • 我是Java新手,尝试使用SWT和JFace创建GUI项目。我想尝试创建首选项页面,所以我在谷歌上搜索了一些现成的代码。我正在试着从这里买一个。我创建了这个类(使用正确的名称),并将所需的JAR放入插件依赖项中。(使用Eclipse氧气) 组织。日食swt\U 3.106.1 因此,在运行此操作时,我遇到了一个错误,即: '线程“main”java中出现异常。lang.NoClassDefFoun

  • 问题内容: 谁能解释一下为什么这段代码中会出现死锁。 问题答案: 这可能是如何执行的。 输入,由于关键字已锁定Alphonse 输入,加斯顿现已锁定 无法通过第一个方法调用执行,因为加斯顿(鲍尔)被锁定。等待锁被释放。 由于alphonse(上弦器)已锁定,因此无法从第二个方法调用执行。等待锁被释放。 两个线程都互相等待释放锁。