- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Java 中的 Firebird 数据库。一切正常,但如果数据库文件路径包含国家字符,例如,我在连接到数据库时遇到问题。 “á”或“č”。
异常示例:
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544344. I/O error during "CreateFile (open)" operation for file "Z:/testing/á/sample.fdb"
路径正确,数据库存在。 Jaybird/JDBC 在路径中存在“á”字符问题。
有什么想法可以解决它或者问题出在哪里吗?感谢您的所有回复。
操作系统:Windows 7 Pro 64 位
JDK:1.7.0.25
杰鸟:2.2.3
最佳答案
从 Jaybird 3 开始,如果服务器是 Firebird 2.5 或更高版本,数据库文件名将始终以 UTF-8 形式发送。
Jaybird 2.2 及更早版本对数据库名称中的特殊字符的支持有限。您可以使用多种选项来解决此问题,但它们是否真正有效很大程度上取决于 Firebird 的版本和操作系统(Firebird 运行的操作系统)的默认字符集。
选项 1:使用连接属性 filename_charset=<name of charset>
哪里<name of charset>
是 Firebird 服务器运行的操作系统的默认字符集。
例如:
jdbc:firebirdsql://myserver/mydatabase?filename_charset=Cp1252
选项 2(Firebird 2.5 或更高版本,带有 Jaybird 2.2):使用 JDBC-251 中描述的解决方法:
使用-Dfile.encoding=UTF8
启动您的Java应用程序并包括utf8_filename=1
在连接 URL 中:
jdbc:firebirdsql://myserver/mydatabase?utf8_filename=1
使用此选项时,请确保您已使用连接属性 charSet
指定连接字符集, localEncoding
或local_encoding
(对于 Java 字符集名称),和/或 encoding
或lc_ctype
(对于 Firebird 字符集名称)。如果没有,您正在使用 Firebird 字符集 NONE
它使用 JVM 默认字符集,您需要设置 charSet
更改为 JVM 的“正常”默认编码,以防止由于 file.encoding
的值发生更改而出现字符集转换问题。 (在某些情况下 - 除了指定 charSet
- 您可能还需要明确将 encoding
设置为 NONE
)。
选项 3:在 aliases.conf
中定义仅包含 ASCII 字符的别名数据库的 firebird 服务器的名称,并使用此别名进行连接:
jdbc:firebirdsql://myserver/thealias
披露:我是 Jaybird 开发者之一
关于java - Jaybird/JDBC + 路径中的国家字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18059030/
我是 Firebird 的新手,使用其 Java 版本 Jaybird,但无法从数据库(.fdb 文件)连接。问题是这样的: org.firebirdsql.jdbc.FBSQLException:
您知道是否有一种方法可以在 jaybird 的选择查询上使用数据监听器。 例如,我有一个类似的查询 select count (*) from my_table where my_statut='x'
我正在使用 Java 中的 Firebird 数据库。一切正常,但如果数据库文件路径包含国家字符,例如,我在连接到数据库时遇到问题。 “á”或“č”。 异常示例: org.firebirdsql.jd
我有这个 Java 代码: Connection conn = connectionProvider.getConnection(); statement = conn.prepareCall("ex
我需要使用数据库 Firebird,为此我使用 Jaybird 2.2.9。 当我使用 MySQL 驱动程序时,将 ResultSet 转换为 Object 如下: empresa.setBairro
可能我问的是一个常见问题,但我真的不明白我做错了什么,以及当我尝试通过 Jaybird 连接我的 Firebird DB 时我可能会忘记什么。我已将 Jaybird.jar 添加到我的 Java 构建
我正在使用 JDBC 连接到 firebird。 org.firebirdsql.jdbc jaybird-jdk18 3.0.5 当我读取数据时: resultSet.next(); //resul
我是 Linux/Java/Scriptella 的新手,我正在尝试在 Firebird 本地数据库上使用 scriptella 进行 jdbc 连接,但我收到以下错误: 2-dic-2013 1.0
我正在使用 jaybird 2.2.3 和 hibernate 3.5,当我使用向导 hibernate 映射文件和 pojos 数据库时出现以下错误“java.lang.NullPointerExc
我很想看看 Firebird 与 Hibernate 的性能,但我无法让它正确运行。我添加到我的 pom.xml: net.sf.squirrel-sql.thirdparty-non-ma
在以前版本的 jaybird (2.2) 中,我能够对 Firebird 服务器执行服务 API 以获取 Activity 事务标记:OIT、OAT、Next 等。 在 3.0 版中,我找不到正确的方
我正在创建一个连接到 Firebird 数据库并检索一些数据的 Java 应用程序。程序完成,在我的电脑上运行良好。问题是,在我需要运行应用程序的计算机上,数据库位于本地网络中的另一台计算机上,我不知
我确实通过 FBUserManager.add(user) 在 Firebird 中成功创建了一个新用户。我也成功连接到了我已经创建的数据库。我无法知道如何运行查询,我收到消息: “org.fireb
我在 Android 上使用 Firebird 直接 wifi 连接创建了一个应用程序。有时我会收到此错误: FATAL EXCEPTION: AsyncTask #4 java.lang.Runti
我正在 eclipse 中开发一个小程序,当从 eclipse 的 AppletViewer 执行时,它可以正常工作,但是当从 .html 文件执行时,它不会执行 class.forName() 方法
我对使用联合的新 SQL 查询有点困惑。 我使用 jaybird 2.2.8 在 java 应用程序中请求我的 firebird 数据库。通常我使用 MetaData 解析我的结果集 ResultSe
当使用嵌入式 firebird 导出我的 java 项目时,我在控制台中收到以下消息: “在 java.library.path 中没有 jaybird[22[任何版本,我猜]]”。 但它实际上是在我
我一直在开发一个连接到 Firebird 数据库并监听事件的程序。我试图让它与嵌入式数据库一起工作。 EventManager em = new FBEventManager(GDSType.getT
我正在尝试使用 lib jaybird 2.1.6 在 Firebird 数据库的 blob 字段中插入文件。 首先,我在数据库中创建一条记录,然后,使用记录 ID,尝试将文件插入到 blob(子类型
我已将 Wildfly 10 中的 Jaybird 依赖项从 Jaybird 2.2.11 升级到 Jaybird 3.0.0-alpha-1。当我尝试创建连接时,我现在遇到以下异常。 启动后的第一个
我是一名优秀的程序员,十分优秀!