gpt4 book ai didi

java - mysql java与c程序,存储字符的差异

转载 作者:行者123 更新时间:2023-11-29 09:21:20 26 4
gpt4 key购买 nike

我有两个程序 - 第一个是写入 mysql 数据库的 C 程序。第二个是从mysql数据库读取数据的java程序。 C 程序读取特定目录中的文件列表并将文件名插入到 DB 中。 Java 程序读取这些行并尝试使用这些文件名进行一些文件处理。

特定文件名包含长破折号“-”字符。该文件名由 java 程序从 DB 读取。但是,当它尝试为此条目打开文件系统上的文件时,文件名将不匹配。

当我使用Java直接从文件系统读取文件名(包含“-”字符)时,“-”字符的字节显示为[-30 -128 -109]。 Java 从 DB 读取文件名(由 C 程序转储的文件名)时显示的字节,而“–”字符的字节在 Java 中显示为 [-61 -94 -30 -126 -84 -30 -128 -100]。

这与C程序输入mysql时使用的字符集有关吗?

请帮忙..

谢谢,
-凯沙夫

最佳答案

Java 字符串由 Unicode 字符组成,而不是字节。所以问题可能在于

  • 数据库以一种编码添加了字符串,但认为它是另一种编码
  • Java 应用程序错误地解释数据库的字符输出
  • 文件系统编码与 Java 应用认为的不同。

你是如何将字符串输入数据库的?你的表定义是什么?您在客户端应用程序上使用什么连接编码?

通常,为了您的理智,最好对所有内容(表定义和连接编码)使用 utf8。如果您不这样做,您可能最终会以某种方式破坏事物。

关于java - mysql java与c程序,存储字符的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1659903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com