【问题标题】:Firestore will not save words with accents?Firestore 不会保存带重音的单词?
【发布时间】:2019-03-31 01:34:34
【问题描述】:

我正在尝试将数据从编码为 utf-8(特别是 utf8mb4_unicode_520_ci)的 MySQL 表移动到 Firestore。我正在使用 Golang 的 Firestore 库和 sqlx。大多数或每个带有重音字符的单词都会失败,例如 müller、évident 等。返回的错误如下:

rpc 错误:代码 = 内部 desc = grpc:编组时出错:proto: 字段“google.firestore.v1.Value.ValueType”包含无效的 UTF-8

我可以使用基于浏览器的界面手动将重音字符输入 Firestore,所以我猜问题出在 Golang 库上。是否有任何解决方法可以保留重音字符?

【问题讨论】:

  • Firestore 绝对能够保存重音字符,因此很可能在此过程中某处出现问题。您能否更新您的问题以包含重现问题所需的最少独立代码?
  • 感谢您的建议。我去寻找一种提供独立代码的方法,却发现我编写的单词标记化函数正在破坏重音字符。将字符串转换为符文就解决了这个问题。
  • @Brent 如果你解决了问题,那么你可以用解决方案回答你自己的问题。
  • 很高兴听到您发现了问题。这是creating an MCVE 的神奇副作用之一:您在这样做时经常会发现问题。您可以(正如 Doug 还问的那样)发布您的解决方案作为答案吗?这样,其他人可能会从您的经验中受益。否则,我将投票结束这个问题作为一个时间问题/错字。

标签: go google-cloud-firestore


【解决方案1】:

我的问题的解决方案与我正在使用的 Firestore 和库无关,而是我编写的单词标记化函数中的问题。标记化将重音字符转换为错误的 UTF-8,因此在标记化之前将它们转换为符文即可解决问题。

【讨论】:

    猜你喜欢
    • 2010-11-29
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多