Java 中的日语字符编码

2024-01-16

这是我的问题。我现在正在使用 Java Apache POI 读取 Excel(.xls 或 .xlsx)文件,并显示内容。电子表格中有一些日语字符,我得到的所有日语字符都是“???”在我的输出中。我尝试过使用Shift-JIS、UTF-8等多种编码方式,但是都不行... 下面是我的编码代码:

public String encoding(String str) throws UnsupportedEncodingException{
  String Encoding = "Shift_JIS";
  return this.changeCharset(str, Encoding);
}
public String changeCharset(String str, String newCharset) throws UnsupportedEncodingException {
  if (str != null) {
    byte[] bs = str.getBytes();
    return new String(bs, newCharset);
  }
  return null;
}

我正在传入编码(str)的每个字符串。但是当我打印返回值时,它仍然是类似“???”的东西(如下所示)但不是日语字符(平假名、片假名或汉字)。

title-jp=???

任何人都可以帮我解决这个问题吗?太感谢了。


Your changeCharset方法似乎很奇怪。StringJava 中的对象最好被认为没有特定的字符集。它们使用 Unicode,因此可以表示所有字符,而不仅仅是一个区域子集。您的方法说:使用我的系统的字符集(无论是什么)将字符串转换为字节,然后尝试使用其他字符集(在中指定)解释这些字节newCharset),因此这可能行不通。如果您转换为编码中的字节,则应该使用相同的编码读取这些字节。

Update:

要将字符串转换为 Shift-JIS(日本常用的区域编码),您可以说:

byte[] jis = str.getBytes("Shift_JIS");

如果将这些字节写入文件,然后在区域设置全部以日本为中心的 Windows 计算机上的记事本中打开该文件,记事本将以日语显示它(没有其他内容可继续,它会假设文本是在系统的本地编码中)。

但是,您同样可以将其另存为 UTF-8(以 3 字节 UTF-8 引导符序列为前缀),记事本也会将其显示为日语。 Shift-JIS 仅one将日语文本表示为字节的方式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中的日语字符编码 的相关文章

  • 安卓。 onEditorAction 从未被调用

    我正在尝试捕捉从屏幕上移除键盘的事件 并且我正在使用OnEditorActionListener班级 然而 其onEditorAction方法永远不会被调用 这是我的 XML 格式的 EditText
  • 数组查找时间复杂度和。它是如何存储的

    众所周知 通过索引访问数组的时间复杂度是O 1 Java 的文档ArrayList 它由数组支持 对其也有同样的说法get手术 size isEmpty get set iterator 和 listIterator 操作以恒定时间运行 查
  • 如何检测线程是否被IO阻塞?

    在Java中 线程可以有不同的状态 新的 可运行的 阻塞的 等待的 TIMED WAITING 的 终止的 然而 当线程被IO阻塞时 其状态为 RUNNABLE 如何判断是否被IO阻塞 NEW 线程已创建但尚未处理 可运行 线程正在占用CP
  • mvn dependency:analyze 结果不正确

    我一直在寻找一种工具 它能够向您显示未使用的依赖项 我很快就偶然发现了 Maven 命令mvn dependency analyze 这样做的问题是 它经常检测到 未使用的 依赖项 如果缺失 这些依赖项就会导致构建失败 这是优化项目的示例
  • 如何从 .t​​xt 文件读取数据并将数据放入对象的数组列表中?

    到目前为止 我所写的内容是基于我目前对基本数组的了解 但我只是不明白如何使用数组列表 或如何从文件中读取 到目前为止我所写的内容有效 任何有助于修复我的代码以从文件中读取并使用数组列表的链接或建议将不胜感激 谢谢 public class
  • JTable AutoCreateRowSorter 将数字排序为字符串

    我有一个 JTable JTable table new JTable String colNames c1 DefaultTableModel model new DefaultTableModel Integer x new Integ
  • 将 Spring Boot 应用程序部署到 Heroku 失败并显示“无效标志:--release -> [帮助 1]”

    当我尝试将代码部署到 Heroku 时 通过git push heroku master 我收到 Maven 错误 remote ERROR Failed to execute goal org apache maven plugins m
  • java.sql.SQLException: - ORA-01000: 超出最大打开游标数

    我收到 ORA 01000 SQL 异常 所以我有一些与之相关的疑问 最大打开游标是否与 JDBC 连接数完全相关 或者它们也与我们为单个连接创建的语句和结果集对象相关吗 我们正在使用连接池 有没有办法配置数据库中语句 结果集对象的数量 如
  • 在 Java 和 PHP 之间加密/解密字符串

    我使用 AES 加密来加密和解密服务器端的 php 和 Android 应用程序 作为客户端 之间的字符串 PHP 中的加密字符串为 HaxRKnMxT24kCJWUXaVvqDHahzurJQK sYA4lIHql U 在 Java 中是
  • 从外部 clojar 导入/使用资源

    我想做的是将一个大文件 MIDI 声音字体 打包到一个独立的 Maven repo clojar 中 然后能够以编程方式将其拉下来并从单独的项目中使用它 事实证明 这个看似简单的任务比我想象的要复杂 理想的情况是 如果有一种方法可以直接访问
  • java3d 中的面部着色

    使用java3d 如何不在每个顶点基础上着色 而是在每个面基础上着色 我尝试学习 java3d 但我生成的 Shape3d 看起来并不符合预期 我想用不同的颜色给不同的三角形着色 但我不知道该怎么做 纹理看起来有点大材小用 而且我根本没有掌
  • 在Java中一个接一个地播放WAV文件

    我正在尝试玩几个WAV http en wikipedia org wiki WAV文件一个接一个 我尝试了这个方法 for String file audioFiles new AePlayWave file start 但这会同时播放它
  • 如何迭代SparseArray?

    有没有办法迭代 Java SparseArray 适用于 Android 我用了sparsearray通过索引轻松获取值 我找不到 看来我找到了解决方案 我没有正确注意到keyAt index 功能 所以我会这样做 for int i 0
  • 使用 Java 进行 AES 加密并使用 Javascript 进行解密

    我正在制作一个需要基于 Java 的 AES 加密和基于 JavaScript 的解密的应用程序 我使用以下代码作为基本形式进行加密 public class AESencrp private static final String ALG
  • 用于将字符串与通配符模式进行匹配的递归函数

    所以我一整天都在试图解决这个作业 只是无法完成 以下函数接受 2 个字符串 第二个 不是第一个 可能包含 的 星号 An 是字符串的替换 空 1个字符或更多 它可以出现 仅在s2中 一次 两次 更多或根本不出现 它不能与另一个相邻 ab c
  • SAXParseException:找不到元素“定义”的声明

    我对 camunda 和 DMN 完全陌生 我试图在 spring boot 中运行 DMN 示例 链接在这里 https github com camunda camunda bpm examples tree master dmn en
  • 跳过一行GridBagLayout

    我在 JFrame 上使用 GridBagLayout 我希望能够跳过一两行 但将这些行显示为空白 然后在这些行后面有一个按钮 我在文档中找不到任何方法来执行我所描述的操作 有谁知道我可以执行此操作的任何方法吗 发现它比添加空组件干净得多
  • PostgreSQL 使用 JPA 和 Hibernate 抛出“列的类型为 jsonb,但表达式的类型为 bytea”

    这是我的实体类 映射到表中postgres 9 4 我正在尝试将元数据存储为jsonb在数据库中输入 Entity Table name room categories TypeDef name jsonb typeClass JsonBi
  • 1° 夏令时 Java 和 JS 表现出不同的行为

    假设巴西利亚 GMT 0300 夏令时于 21 10 2012 00 00 00 此时时钟应提前一小时 Java new Date 2012 1900 9 21 0 0 0 Sun Oct 21 01 00 00 BRST 2012 Chr
  • 文件构造函数说明

    我无法理解以下文件构造函数 public File String parent String child and public File File parent String child 参数有什么作用parent and child该文件

随机推荐

  • C中主要函数的风格[重复]

    这个问题在这里已经有答案了 可能的重复 main 的正确声明是什么 https stackoverflow com questions 4207134 what is the proper declaration of main 我正在努力
  • Python正则表达式将空格分隔的单词分隔成列表

    如果我有一个字符串 hello world示例文本 我希望能够将其转换为列表 hello world sample text 我怎样才能用正则表达式做到这一点 其他不使用re的方法也是可以接受的 hello world sample tex
  • PHP/Apache REQUEST_URI 不同的行为?

    我正在将网站从一台服务器移动到另一台服务器 两者都具有相似的变体森托斯 5 x64 with 阿帕奇2 2 and PHP 5 2 X 我的一些脚本 包括WordPress 行为不正确 事实证明问题在于两者之间的差异REQUEST URI
  • 必填字段验证器,在初始页面加载时显示

    我有一个简单的文本框 末尾附加了必需的字段验证控件 然后显示在页面底部的验证摘要中 一切都运行良好 但验证似乎在页面的初始加载时触发 这显然会引发所需的验证并显示错误消息 如何将此控件设置为仅在提交表单后才验证 听起来您的页面加载中有这样的
  • 将 sql 查询转换为等效的 Spark 查询

    我在用spark sql 2 4 1v用java8 我有如下所示的场景 片段 Dataset
  • Android中AAR、JAR、DEX、APK的区别

    在Android系统或开发环境中 AAR JAR DEX APK文件有什么区别 每一项的目的是什么 AFAIK JAR 就像 class 文件的集合 就像 Java 中的那样 AAR 是 JAR 文件 资源 但它的用例是什么 用于分发 An
  • 为什么在 scala Spark 应用程序中初始化 SQLContext 后导入隐式 SqlContext.implicits._

    为什么在 scala Spark 应用程序中初始化 SQLContext 后导入隐式 SqlContext implicits 当导入放在对象之外时 似乎存在问题 我来自 java 背景 不理解 def 对象中 import 语句的用法 v
  • HTTPS 通信是否需要 JWT?

    我正在开发一个 MEAN 堆栈应用程序 目前正在设置一个帐户系统 我看过几个关于身份验证的教程 全部使用JWT 我想知道 JWT 是否可以用作通过非安全连接 如 HTTP 来保护通信传输的方法 我已经设置了 HTTPS 从 Angular
  • Android 通知管理器在屏幕关闭时不起作用

    我有一个倒计时器 当它关闭 到零 时 它会检查应用程序是否具有焦点 如果没有 它会在通知栏中启动通知 当您单击通知时 将重新打开应用程序 现在所有这些都工作正常 但如果屏幕碰巧关闭 计时器会继续运行 并且通知会在正确的时间可用 但在我重新打
  • 如何识别 Teradata 用户的所有权限?

    我正在寻找一种方法来识别授予特定数据库中用户的默认权限 我已经尝试过这个 select from dbc allrights where username user id and databasename database name 上述有
  • 像地址栏一样的资源管理器窗口[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 以与创建相反的顺序处理对象?

    我在编写的代码中遇到一个反复出现的问题 修改某些全局值 我将使用注册表值作为示例 然后尝试将修改恢复到原始状态 我想我会尝试使用 IDisposable 来解决这个问题 创建时 该对象将读取注册表值 将其存储在本地 然后对其进行修改 当被破
  • 以编程方式配置 Eclipse 安装的 JRE

    我想将 Eclipse 环境配置为使用 JDK 而不是标准 JRE 我这样做是因为我使用 m2eclipse 它需要 JDK 中的 tools jar 才能运行 我在 Windows 7 32 位和 JDK 1 6 0 16 上运行 Ecl
  • clang format 可以格式化 C/C++ 函数以在逗号之前打破参数列表吗?

    我注意到你可以做到这一点 From https clang llvm org docs ClangFormatStyleOptions html https clang llvm org docs ClangFormatStyleOptio
  • 为什么 document.body.offsetHeight + document.body.bottomMargin 不等于 document.documentElement.offsetHeight

    我正在尝试计算 iFrame 的高度 但不明白为什么 document body offsetHeight document body bottomMargin 不相等 document documentElement offsetHeig
  • 哈斯克尔空间泄漏

    all 在尝试解决一些编程测验时 https www hackerrank com challenges missing numbers https www hackerrank com challenges missing numbers
  • Postgresql 增量物化视图维护 (IVM) 挑战,为什么再次推迟到目标版本 16? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 来自 commit fest 的最新消息https wiki postgresql org wiki Incremental View Main
  • 在进程启动之前向进程注入 dll 的优雅方法

    我正在制作一个 mod dll 来修改目标进程的行为 我成功地注入了我的dll并挂钩了目标的一些函数 但是 当我需要在主模块启动之前 更清楚地说 在入口点之前 挂钩一些 API 时 需要做更多的工作 我需要使用 CREATE SUSPEND
  • 如何将 270 度旋转的文本对齐到左上角?

    这应该是一个你会想到的非常简单的问题 我有一个带有一些标题文本的框 我想将其旋转 90 度 我希望它是绝对定位的 以便单词的末尾被轻推到左上角 我可以很容易地将其对齐到底部 但问题是 对于可变长度文本 在对齐到顶部时似乎不可能始终将其保留在
  • Java 中的日语字符编码

    这是我的问题 我现在正在使用 Java Apache POI 读取 Excel xls 或 xlsx 文件 并显示内容 电子表格中有一些日语字符 我得到的所有日语字符都是 在我的输出中 我尝试过使用Shift JIS UTF 8等多种编码方