使用 Google Sheets API 阅读带有阿拉伯语文本的单元格时,感叹号从结尾移动到开头

问题描述

我正在使用 Google Sheets API 将包含阿拉伯语文本的单元格导出到 JSON 文件。当单元格包含在句子末尾带有感叹号的文本时(因此在 RTL cell 中文本的左侧),它会切换 API 响应中的位置并以右侧结束(不正​​确)在我生成的 JSON 输出中:

  "levelSelect:titleOne": "قاوم الطعام غير الصحي!"

词序是正确的,但我希望感叹号在左边第三个双引号之后,而不是在第四个之前。标点符号在 Google 表格原始单元格中的位置正确:

enter image description here

所以所有的 Unicode RTL 字符都按照原来的顺序回来了,但是一个非 Unicode 字符(感叹号)已经换了位置。

我使用 higher level library 查询 Google 表格,但即使我发出直接 API 请求(使用 OAuth playground),我也会得到相同的输出(FWIW,它使用 {{1 }} 在 charset=utf-8 标头中)。在我将响应写入文件之前,顺序已经错误

在这一点上,我不确定这是否是 Google Sheets API 中的错误,或者我不明白应该如何处理阿拉伯文本的一些基本问题。似乎没有什么神奇的“在正确的位置使用非 Unicode 字符格式化这个主要是 Unicode 字符串的格式”转换功能

我知道在不同来源之间存在复制和粘贴问题,当您从剪贴板粘贴带有格式的文本时可能会发生这种情况。如果我用 Cmd-C(在 Mac 上)复制单元格,然后只用 Cmd-V 将它粘贴到某些地方,我会得到相反的顺序,如果我使用 Shift-Cmd-V,我会得到正确的顺序感叹号。就好像 API 发送的内容在这里对发送的格式感到困惑。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)