当前位置: 首页 > 知识库问答 >
问题:

Java使用utf8的自定义排序规则(as,ci)显示Mysql数据中的特殊字符错误

南门鸿振
2023-03-14

我已经在MySQL中为utf8字符设置了自定义排序规则。这个排序规则区分重音,不区分大小写,这是我需要的。但这些带有口音的字符在我的Java应用程序中显示得并不好。要使这些字符以正确的方式显示,我必须做些什么?当我使用Mysql的默认utf8排序规则(如utf8_general_ci)时,没有任何问题,但当我使用自己的排序规则时,就会出现...

下面是从MySQL获取数据的Java代码:

Class.forName("com.mysql.jdbc.Driver").newInstance();
        String connectionUrl = "jdbc:mysql://localhost:3306/mysqlmoviesdb";
        String connectionUser = "";
        String connectionPassword = "";
        conn = DriverManager.getConnection(connectionUrl, connectionUser, connectionPassword);
        stmt = conn.createStatement();
        rs = stmt.executeQuery("SELECT ID, Title FROM mymovies Order By Title");

共有1个答案

左丘阳晖
2023-03-14

您的问题可能与数据如何存储在数据库中或以何种格式显示有关,我将建议您检查数据库字符格式是否设置为UTF8,以及显示数据的客户端是否也设置为UTF8,顺便说一下,我不确定您的意思是排序失败导致检索到的信息与数据库中的信息不相同(对于特殊字符问题),还是它们在排序完成后在应用程序中没有以正确的方式显示

 类似资料:
  • 如果这是一个重复的问题,我道歉。我是一个特殊字符的新手,对特殊字符的编码和解码知之甚少。我到处寻找stackoverflow,尝试解决方案,但仍然无法解决我的问题。我在mysql数据库中存储了特殊字符,如。数据库排序规则为utf8\u bin。它在我的数据库字段中显示良好,但在我的页面上,它显示为

  • 问题内容: 我无法从网络服务向数据库发送或显示带有特殊字符的文本。在月食中,我已将字符编码设置为UTF-8,但仍然无法显示字符。例如像下面的代码的简单打印 要么 在控制台上的结果,如果我将其发送到数据库,则结果为??????。我如何使它正确显示在控制台上以及希望在数据库中正确显示 问题答案: 是的,它是XXI 世纪,我们仍在努力处理字符编码等问题。 我的第一个猜测是: 您的源文件编码可能是错误的(

  • 我无法将带有特殊字符的文本从webservice发送或显示到数据库。在我的eclipse上,我已经将字符编码设置为UTF-8,但它仍然不允许我显示字符。例如,一个简单的打印,如下面的代码 或 控制台上的结果是??????,如果我把它发送到我的数据库。我如何使它正确地显示在控制台上,希望在数据库中

  • 我试图在SonarQube上运行我的自定义PMD规则,但到目前为止,没有成功。 我创建了一个从sonar-pmd-plugin扩展的插件。在这个插件中,我有我的PMD规则集文件(custom_rules.xml)、一个声纳规则文件(pmd-extensions.xml)和我的自定义规则的Java类。 SonarQube识别了我的规则,我已经在默认的质量配置文件中启用了它们。最后,当我在给定的项目上

  • 问题内容: 我很难提出一个正则表达式,该正则表达式实际上会将某些特殊字符列入黑名单。 我需要使用它来验证输入字段中的数据(在Java Web应用程序中)。我们希望允许用户输入任何数字,字母(我们需要包括带重音的字符,例如法语或德语)和一些特殊字符,例如’-。等等 如何将诸如<>%$等的字符列入黑名单? 问题答案: 我只是将角色列入白名单。 使用正则表达式构建黑名单同样简单,但是你可能需要添加更多字

  • Java 或任何开源库中是否有任何方法可以转义(不引用)特殊字符(元字符),以便将其用作正则表达式? 这在动态构建正则表达式时非常方便,而无需手动转义每个单独的字符。 例如,考虑一个简单的正则表达式,如 \d \.,它匹配小数点()的数字,以及以下代码: 毫不奇怪,上述代码产生的输出是: 也就是说,匹配但(它是“动态”构建的)不匹配(相反,它匹配文字字符串)。 那么,有没有一种方法可以自动转义每个