utf-8 - Julia :我的字符串中有奇怪的字符

标签 utf-8 character julia

我从互联网上抓取了一些文本,并将其放入 UTF8String 中。我可以正常使用这个字符串,但是当我选择一些不属于 UTF8 标准的特定字符(带重音的奇怪字符,比如我的 ú)时,我收到错误,说我使用了无效索引。仅当字符串包含奇怪字符时才会发生这种情况;我的代码适用于不包含奇怪字符的普通字符串。

有什么办法可以解决这个问题吗?

编辑:

我有一个 SubString{UTF8String} 类型的变量字 当我使用 do 方法(word) 时,没有出现问题。当我执行 method(word[2:end]) (假设长度至少为 2)时,如果第二个字符很奇怪(不是 UTF8),我会收到错误消息。

最佳答案

Julia 对字节位置而不是字符位置进行索引。对于像 UTF-8 这样的可变长度编码来说,它的效率要高得多,但它使某些操作使用更多的样板文件。

问题在于,某些代码点被编码为多个字节,当您从 2:end 分割字符串时,您将得到第一个字符的一半(女巫无效,您会收到错误)。

解决方案是获取切片中的第二个有效索引而不是 2。我认为这类似于 str[nextind(str, 1):end]

PS。抱歉,我的手机上的答案不太清楚。

编辑: 我尝试了这个,似乎 SubString{UTF8String} 和 UTF8String 在切片方面有不同的行为。我已将其报告为 bug #7811在 GitHub 上。

关于utf-8 - Julia :我的字符串中有奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25082347/

相关文章:

java - 如何在android中解码带有特殊字符(如 "<span style=\"color:#ff0000;\"gt;")的utf-8编码字符串?

python - 如何在代码中初始化 UTF-16?

c - 用 C 创建简单计算器时出现问题

package - 在 Julia 中,如何取消 -`dev` 包?

java - 如何在从数据库检索的页面中显示阿拉伯语 unicode 文本

MySQL 的 UTF-8 字符支持

ios - “???”显示在 iOS 设备上的字符串中,但不是模拟器

c++ - 我无法将字符与输入进行比较。具体到 "\"的字符串中的一个字符

julia - 对传递函数的评估比 julia 中的直接评估慢。有解决方法吗?

julia - 为什么在 Julia 中重新定义后符号运算的顺序仍然成立?