【问题标题】:How to find and replace box character in text file?如何在文本文件中查找和替换框字符?
【发布时间】:2018-08-20 01:05:10
【问题描述】:

我有一个大型文本文件,我将通过编程方式处理它,但遇到了散布在整个文件中的特殊字符的问题。该文件太大,无法扫描以查找特定字符。大多数其他不需要的特殊字符我已经能够使用一些正则表达式模式摆脱。但是有一个方框字符,类似于“□”。当我尝试从实际文本文件中复制字符并将其传递到此处时,我得到“�”,因此该框的示例来自 Windows 字符映射,其中包含代码“U+25A1”,我不确定如何解释或者如果它是我可以用于正则表达式搜索的东西。

有人知道如何在 UTF-8 编码文件中搜索类似于“□”的方框符号吗?

编辑:

这是文本文件中的一个示例:

"�当花苞出现时修剪棕榈树,或延迟修剪到棕榈树开花后,以防止棕榈花毛虫的侵扰。留下前五行。"

唯一的问题是,如原帖中所述,正方形被转换为菱形问号。

【问题讨论】:

  • 请问您能提供示例输入和输出吗?

标签: regex text utf-8 special-characters


【解决方案1】:

不清楚您在哪里以及如何搜索,尽管您可以使用等效的十六进制:

\x{25A1}

示例

https://regex101.com/r/b84oBs/1

【讨论】:

  • 我认为这可能很接近,但它不是正确的十六进制值。
  • @ConnerM:在不知道实际角色的情况下很难说出它是哪个角色...也许可以试试\x{FFFD},即
【解决方案2】:

带有问号的黑菱形本身并不是一个字符。当您给它无法识别的字节时,它就是浏览器向您吐出的内容。

  • 找出数据的来源。
  • 确定其编码。 (通常是 UTF-8,但也可能是其他格式。)
  • 确保浏览器配置为显示该编码。这可能足以满足页面标题中的<meta charset=UTF-8>

【讨论】:

    【解决方案3】:

    我找到了一个使用 Notepad++ 和 website 的解决方法。目前尚不清楚正方形最初来自什么编码系统,但是当我将其发布到上面网站的查询字段或 Notepad++ 转换表(插件>转换器>转换表)中时,它给出了“的十六进制字符代码替换字符”,即带问号的菱形。

    在正则表达式 \x{FFFD} 中使用此代码,在 Notepad++ 搜索中给了我所有的方块,尽管将它们识别为替换字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-25
      • 2020-07-29
      • 2012-11-10
      • 2013-02-19
      • 2020-08-12
      • 2013-05-26
      相关资源
      最近更新 更多