java - 拆分UTF-8字符串的正确方法

标签 java string utf-8 token

我想拆分一个 utf-8 字符串。

我尝试了 StringTokenizer 但它失败了。

标题应为“0”,但显示为“عُدي_صدّام_حُسين”。

    String test = "en.m عُدي_صدّام_حُسين 1 0";

    StringTokenizer stringTokenizer = new StringTokenizer(test);
    String code = stringTokenizer.nextToken();
    String title = stringTokenizer.nextToken();

enter image description here 拆分 utf-8 字符串的正确方法是什么?

最佳答案

这里的问题是阿拉伯语文本不在字符串的“末尾”。

例如,如果我选择字符串文字的内容(在 Chrome 中),将鼠标从左向右移动,它首先选择 en.m,然后选择所有阿拉伯语文本,然后是 0 1。文本只是看起来“在末尾”,因为这就是它的呈现方式。

在您的 Java 源代码中指定的字符串实际上确实具有 عُدي_صدّام_حُسين 作为第二个标记。所以,您正确地拆分了它,只是没有拆分您认为正在拆分的内容。

关于java - 拆分UTF-8字符串的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48418302/

相关文章:

perl - 使用 unicode 字符创建文件名

java - 如何手动将泛型参数传递给方法

java - 使用 MyBatis 3 插入对象列表

java - 我正在尝试使用 ListView 将 MySQL 表中的数据显示到我的 Android 应用程序,但它现在正在显示数据

javascript - 不允许连续出现多个相同的字符

php - 在这种情况下是 preg_replace 还是 mb_ereg_replace?

java - 在java中初始化final字段

c - C 中 printf 的不逻辑总线错误

Powershell 中的 RegEx,合并替换调用

perl - Perl Encode.pm无法解码具有宽字符的字符串