- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试读取包含一些日语文本的 CSV 文件,并将该文件中的一些数据写入数据库。 CSV 是通过一些我不太熟悉的 Flex 代码上传的。但在我的后端,我有简单的 byte[] 和文件内容。我正在使用以下代码:
//content is an array of bytes, returned by Flex side
ByteArrayInputStream in = new ByteArrayInputStream(content);
BufferedReader br = new BufferedReader(new InputStreamReader(in, Const.ENCODING_SHIFT_JIS));
String strLine;
try {
while (true) {
strLine = br.readLine();
//processing CSV line by line and eventually writing data to DB
...
当我调试 strLine 变量时 - 我只看到问号而不是日文汉字字符(特别是,我已经在日文汉字字符裵上测试了它)。其他日语字符似乎没问题(例如〒字符)。在调试窗口中(以及后来在我的数据库中),它看起来像这样:〒���
如果我做同样的事情,但在我的代码中使用 UTF-8 和 Const.UTF-8 而不是 Const.ENCODING_SHIFT_JIS 编码的文件 - 一切正常。但客户端需要 Shift-JIS 支持。也许有人可以告诉我如何解决这个问题,或者至少在哪个特定领域(flex、java、shift-jis 编码本身......)?
最佳答案
经过一些研究和尝试\失败迭代后,我注意到如果我指定“JISAutoDetect”而不是“Shift-JIS”作为 InputStreamReader 的参数 - 那么所有汉字字符都将变得可读。
根据我找到的描述here ,JISAutoDetect 应执行以下操作:“检测并从 Shift-JIS、EUC-JP、ISO 2022 JP 进行转换(仅转换为 Unicode)”。所以它做得很好。
从那里我可以看到一些后果:
1) 从 JISAutoDetect 描述中我可以假设,理论上我的文件编码是可能的 - 实际上不是 Shift-JIS。这就是为什么我从 Shift-JIS 文件中读取数据后出现所有这些乱码的原因。例如,如果是 EUC-JP,则 JISAutoDetect 会检测到这一点并正确转换所有内容。
但是我从使用日语版 Windows 的客户端获得了此文件,该文件应该具有 native 编码 Shift-JIS(至少我的客户端如此断言)。我还尝试使用在线转换工具将 UTF-8 编码文件中存储的相同字符转换为 Shift-JIS。在通过我的代码后,这给了我同样的乱码。
2) 因此,如果上述所有内容都是正确的,那么在 Java 中处理 Shift-JIS 文件时可能存在一些错误。尽管很难相信这一点。
关于java - 将日语汉字字符从 Shift-JIS 转换为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31033241/
我正在尝试实现 Intellij 之类的双类导航。我发现它被称为“快速打开文件”的“序列键绑定(bind)”。 因此,我在 .sublime-keymap --- USER 中添加了这一行 { "
this.x = (Math.random()*canvasWidth); this.y = (Math.random()*canvasHeight); (1) this.shift = {x: th
我目前正在研究编译器,据我了解,在 LR(0) 中,有时会出现“shift/reduce”或“reduce/reduce”冲突,但不可能出现“shift/shift”冲突!为什么我们不能发生“转变/转
我希望使用 AutoHotKey 来修改我的 shift 键的功能。 Steve Losh 的博客条目 here 中描述了该功能。 .具体来说,我希望我的 shift 键执行以下操作: 如果 LShi
在我的Redis数据库中,我有一个以prefix:格式保存的键列表,所以示例数据库看起来像这样:。问题是,当我尝试删除前缀:1时,因为无论出于什么原因,我都需要删除IPSUM,在索引之间留下了一个间隙
在我的Redis DB中,我有一个以prefix:格式保存的键列表,因此示例数据库如下所示:。问题是,当我尝试删除前缀:1时,因为无论出于什么原因,我都需要删除IPSUM,在索引之间留下了一个间隙--
Listview 控件中是否有可以上下移动项目的功能? 最佳答案 我没有太多使用 TListView(我主要使用数据库网格),我把你的问题作为学习一些东西的机会。下面的代码是结果,它比大卫的答案更直观
我有点难以发现这两种操作的不同之处。所以我读到算术移位与逻辑移位基本相同,唯一的区别是它以某种方式保持最高位或有符号位。 所以当我在 101110 上做 LSL #2 时假设这个二进制是一个无符号的,
我正在尝试使用 shift+shift 配置键映射,这可能吗? 我试过: But this maps shift + S and this that maps to unknown 最佳答案 您不
我正在努力在 vim 中绑定(bind) Shift+- 组合。我已经尝试了以下两种选项,但都没有可用的选项,并且谷歌搜索没有带来任何相关信息。 nnoremap - nnoremap - 我正在
我正在使用基于Gallery 的Cover-flow,正如建议的那样here . 是否有可以捕获的事件表明在我的画廊/封面流中进行了一次移位(向左或向右)? 需要明确的是,如果我给画廊一个像样的滑动并
这个问题在这里已经有了答案: Cocoa - NSEvent Respond to the SHIFT key? (5 个答案) 关闭 3 年前。 我正在制作这个应用程序,我想检测是否检测到 shi
我不允许在我的 C 代码中使用浮点变量(出于性能原因)。我想进行整数除法运算,同时我想尽可能地防止除法损失。 我的理解是,如果分子很大,除法运算会产生很好的结果。目前我正在对分子进行左移操作以使其成为
我有一个文本输入,当用户按下 shift(keydown)并绑定(bind)一个监听器以监听 shift 键时,它现在变得透明 即。 $('#foo').keydown(function(){
我有一个包含 shift 命令的 bash 脚本。 它在 bash 中运行正常,但在 zsh 环境中,shift 命令似乎不同。 zsh $ shift shift: shift count must
我正在使用 Fedora 29 中包含的 vim: VIM - Vi IMproved 8.1(2018 年 5 月 18 日,2019 年 2 月 4 日 14:19:12 编译) 我刚刚注意到按
我有一个包含 shift 命令的 bash 脚本。 它在 bash 中运行正常,但在 zsh 环境中,shift 命令似乎不同。 zsh $ shift shift: shift count must
我正在使用 Fedora 29 中包含的 vim: VIM - Vi IMproved 8.1(2018 年 5 月 18 日,2019 年 2 月 4 日 14:19:12 编译) 我刚刚注意到按
我可以使用 UITextViewDelegate 或 NSNotificationCenter 来检测用户何时点击 Keyboard 上的字符键将文本输入到 UITextView. 但我的应用程序需要
当我尝试单击 shift + tab 组合时, Shiftkey 被触发 $("#buttonZZ").on("keydown",function (eve) { if (eve.keyCod
我是一名优秀的程序员,十分优秀!