【问题标题】:Pulling Unicode Data from a DataGrid in LiveCode在 LiveCode 中从 DataGrid 中提取 Unicode 数据
【发布时间】:2013-03-18 22:01:31
【问题描述】:

我们正在将我们的应用程序翻译成日语,并且一直在努力从 DataGrid 中获取 UTF-16 文本。我们在数据上尝试了各种 uniEncode、uniDecode 的组合,结果都是乱码。我们首先覆盖了DataGrid,所以我们可以看到datagrid中的日文是正确的。但是,当我们使用 GetDataOfLine 或 dgDataOfLine 将其拉出然后尝试对其进行解码时,它就会出现乱码。当前的想法是我们需要创建另一个处理程序,例如 GetUnicodeDataOfLine。有什么想法吗?

【问题讨论】:

    标签: unicode livecode


    【解决方案1】:

    除非用户编辑某些内容,否则数据网格不会修改 dgData,此时由您决定获取字段编辑器的 unicodeText。如果您使用的是 dgText,但我不确定它会做什么。


    编辑

    uni 函数总是需要 UTF16。所以第二个参数是你在 uniEncode 中来自什么以及你想在 uniDecode 中去什么。所以 uniDecode(var,"UTF8") 获取 UTF16 数据并返回 UTF8 数据。 uniEncode(var,"UTF8") 获取 UTF8 数据并返回 UTF16 数据。

    【讨论】:

    • 1) 您是否使用包含 UTF-16 数据的数组填充数据网格? UTF 8,我覆盖了默认行为,当我 FillInData:set the unicodetext of the long ID of me to uniencode(pData, "utf8") 这很好用。但是,当我尝试转换为 UTF-16 时,它就会出现乱码。 set the unicodetext of the long ID of me to uniencode(pData, "utf16") 2) 当您使用 GetDataOfLine 提取数据时,您试图对数据进行哪些转换? put uniDecode(uniEncode(tVar, "UTF16")) into tVar我们基本上是想比较UTF-16字符串。
    • 如果您的数据是 UTF8,那么 uniEncode(pData,"utf8") 会将其按主机字节顺序转换为 utf16,因此 uniEncode(pData,"utf16") 没有任何意义。如果您的 dgData 是 utf8,则 uniEncode(var,"utf8") 应在数据网格内外将其转换为 utf16。
    • 完美!我在识别 Unicode 时遇到了很多麻烦。谢谢!现在我正在尝试将 UTF16 编码为 UTF8,以便为 Twitter 帖子做准备。从 UTF16 转换回 UTF8 的最佳方法是什么? uniDecode(var,"UTF16")?
    • 你必须记住 uni 命令总是期望 UTF16。所以第二个参数是你在 uniEncode 中来自什么以及你想在 uniDecode 中去什么。所以 uniDecode(var,"UTF8")
    • 好的,有道理。现在我尝试将 mobileControlGet("input", "unicodeText") 放入 tText 将 uniDecode(tText,"UTF8") 放入 tText
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    • 2013-03-08
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    相关资源
    最近更新 更多