- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 Unicode 字符写入 Excel 文件。我在 Unicode 平面 0 上成功完成了此操作,但在 Unicode 平面 1 上失败了。
我使用 POI 3.16 并使用这段简单的代码进行测试:
public void createFile() throws IOException {
SXSSFWorkbook workbook = new SXSSFWorkbook(1);
SXSSFSheet sheet = workbook.createSheet("data");
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
String value = "💩💩💩ᚬᚬᚬ";
cell.setCellValue(value);
try (FileOutputStream fop = new FileOutputStream("C:\\Users\\Emilien\\PROJECTS_FILES\\BUGS\\SLIMS_14124\\test.xlsx")) {
workbook.write(fop);
} finally {
workbook.dispose();
}
}
在 Excel 2016 中,单元格包含“??????ᚬᚬᚬ”,而不是显示“💩💩💩ᚬᚬᚬ”。在这里查找有关角色的 URL ᚬ在这里💩 .
我解压了excel文件并调查了sheetdata的内容,单元格对应的XML内容是:
<row r="1">
<c r="A1" t="inlineStr"><is><t>??????ᚬᚬᚬ</t></is></c>
</row>
我们可以看到,平面 0 字符已转换为 HTML Unicode 字符,而平面 1 字符已丢失。
如果我改变“??????”通过 XML 文件中的“💩💩💩”,然后再次将文件压缩到新的 xlsx 文件中,字符将按需要渲染(也就是说,该单元格实际上包含 💩💩💩ᚬᚬᚬ)。
Java 字符串似乎没有以 UTF-8 的形式写入 XML,而是经过 POI 处理(最终得到 HTML 字符)。有谁之前经历过这个吗 ?是否可以将 SMP 字符写入 Excel 文件?
这可能是一个错误吗?我的意思是,XML 文件在其 header 中声明了 UTF-8 编码,但似乎并不遵循它。我错过了什么吗?
<?xml version="1.0" encoding="UTF-8"?>
最佳答案
解决方案有所不同,具体取决于 apache poi
的流部分 SXSSF
或 apache poi< 的默认
。XSSF
部分使用
There was a problem with xmlbeans-2.6.0.jar
3.17
版本之前的 apache poi
用于访问 XML
。该库已将字符的高代理范围 (\uD800-\uDBFF) 和低代理范围 (\uDC00-\uDFFF) 排除为“坏字符”。这就是为什么所有需要这些代理范围的 Unicode 都无法正确处理的原因。这是从 0x10000 向上的 Unicode 范围。请参阅Supplementary Characters as Surrogates .
然后,在 apache poi
版本 3.17
中,这个问题在其流 SXSSF
部分中得到了解决,因此 SXSSF
也使用 xmlbeans-2.6.0.jar
工作。因此,流式 SXSSF
部分的解决方案只需更新到 apache poi
版本 3.17
。
但是 SXSSF
默认情况下会创建内联字符串,并且其工作方式与 XSSF
部分不同。这就是为什么当需要 0xFFFF 以上的 Unicode 并使用 xmlbeans-2.6.0.jar
时,XSSF
会进一步创建错误的 XML
。为了在 XSSF
中解决这个问题,需要更新版本的 XMLBeans。有 xmlbeans-2.6.2.jar
和现在 xmlbeans-3.0.0.jar
可用。两者都通过 apache poi
的 XSSF
部分解决问题。
关于java - 使用 Apache POI 写入 Unicode Plane 1 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51838159/
我刚开始使用 PyPNG。但是在元数据中有一项我不明白:飞机。所以两个文件的两个例子: 文件 1 'bitdepth': 8, 'interlace': 0, 'planes': 1, 'greysc
我正致力于确定两个 3D 对象(三角形面)之间的关系(边界/内部交叉点)并偶然发现了 Shapely ,我有兴趣使用它而不是实现我自己的点/线段/射线/三角形相交函数。 但是,我遇到了以下问题: >>
我有一个比例为 (64,1,36) 且旋转为 (90,-180,0) 的平面,并且需要 2d 坐标格式的光线转换的局部坐标: (0,0)-------(64,0) | |
Plane没有 lookAt 方法,所以我不能只执行 lookAt(camera.position)。相反,它是用 normal 定义的。 ,表示为 Vector3。如何让这架飞机始终面向相机? 最佳
使用scatterplot3d在 R 中,我试图从观察到回归平面绘制红线: wh 0 s3d$points3d(x[wh], z[wh], y[wh], pch = 19) 残差 # scatter
我已经加载了纹理,但它似乎显示纹理的单一颜色。我首先定位了纹理坐标,但似乎无法使纹理正确显示。预期的纹理如下: 256x256 纹理正在显示,但看起来是纯色。也许放大到纹理的一个像素,或者纹理坐标的扭
嗨,有人可以看看这个程序吗?我不明白为什么输出是 _c。书上的回答是“一旦s3()抛出异常给s2(),s2()抛给s1(),s2()的代码就不会再执行了”。为什么不呢? public class Pl
我有一个由模拟生成的数据点组成的大网格,与 xy 平面中的每个点相关联的是一个 z 值(模拟的结果)。 我将 x、y、z 值转储到一个纯文本文件中,我想做的是测量 xy 平面(即 z=0)和由数据点。
我尝试为内存使用拍摄图像,但 imageProxy.planes[0].remaining() 始终为 0。因此我无法从结果中获取位图。这是错误还是我做错了什么? 这是我绑定(bind)相机的方法:
我目前正在研究 1.6 版的服务网格 Istio。数据平面(Envoy 代理)由控制平面配置。尤其是 Pilot( istiod 的一部分)负责将路由规则和配置传播给特使。我想知道通信是如何工作的?
有谁知道如何在 THREEJS 中的平面图元(planemesh?/mesh)上发光?我用谷歌搜索并找到了立方体和球体的发光,但这些更像是将对象/网格封装在另一个具有透明 Material 的对象中,
我正在开发一款纸牌游戏,其中纸牌以透视方式显示在 table 上。 table 和卡片都有相同的 x 旋转 (45°)。 随着卡片离玩家越来越远(在 table 上“向上”移动),我希望它们变小。我认
在 x265 编码器 ( https://x265.readthedocs.org/en/default/api.html ) 的编码过程中,我想在新图像编码后将图像像素值(特别是 Y channel
在 openGles 中,减少平截头体近平面(如您所见 here )会使物体看起来更近。我来自 3d,例如在 Vray 中,更改近裁剪平面不会修改距离,只会裁剪一些几何体。 为什么改变平截头体的近平面
我正在尝试开发一个应用程序来渲染我手腕上 watch 的 3D 模型。但是 Sceneform SDK 只检测到一个平面。 我尝试通过增强手腕的图片来增强图像,但由于特征点太少而没有检测到我的手腕。
使用 SpriteKit,是否可以让两个节点相互碰撞,但是当引入另一个节点时,物理原理会发生变化吗? 例如,考虑以下 3 个节点: - 对象 - Object_Hole - 播放器 因此,包含一个 P
有没有办法轻松地动态改变平面的宽度和高度?下面的代码无效。 plane.geometry.parameters.width = width; plane.geometry.parameters.hei
我正在学习 ARKit 并尝试将对象放置在检测到的平面上。但它不能正常工作,并且平面和 3D 对象之间存在空间。 这是我的平面检测代码: func renderer(_ renderer: SCNSc
我对 C++ 的 GLM 库还很陌生,所以我遇到了一些问题。我有一个由一个位置和两个跨 vector 组成的平面,以及一条包含它的位置和方向的线 - 所有值都是 glm::vec3。 struct P
我可以使用 normal 和常量 w 定义一个 CSG.Plane,如下所示: CSG.Plane = function(normal, w) { this.normal = normal;
我是一名优秀的程序员,十分优秀!