【问题标题】:Stripping all but visible characters from copied text (Invisible control characters corrupting code)从复制的文本中去除除可见字符之外的所有字符(不可见的控制字符破坏代码)
【发布时间】:2020-10-27 09:42:38
【问题描述】:

我从 Kindle 电子书中复制了一些代码,用于粘贴到 Jupyter 笔记本中。 Python 在尝试运行代码时报告错误。对于上下文,我在 VSCode 中运行笔记本,但这不是问题本身。我用来方便复制的 chrome 扩展是here

以下是我在将文本从 kindle 电子书粘贴到笔记本时在编辑器中看到的示例:

housing["income_cat"] = pd.cut(housing["median_income"], bins=[0., 1.5, 3.0, 4.5, 6., np.inf], labels=[1, 2, 3, 4, 5]) 
housing["income_cat"].hist()

Jupyter notebook 报告SyntaxError: invalid character in identifier

当我在 Notepad++ 中检查编码时,我看到编码报告为 UTF-8。

如果我转换为 UTF8 并以 ANSI 格式查看,我会看到字符串:

housing["income_cat"] = pd.cut(housing["median_income"], bins=[0., 1.5, 3.0, 4.5, 6., np.inf], labels=[1, 2, 3, 4, 5]) housing["income_cat"].hist()

如果我转换为 ANSI 并以 UTF8 格式查看,我会看到 Â 替换为符号 xA0

所以似乎有一个控制字符与文本一起被复制。

是否有我可以粘贴的工具,或者我可以使用 notepad++ 的方式来删除除可见空白和文本之外的所有内容?

【问题讨论】:

    标签: text encoding notepad++ text-editor kindle


    【解决方案1】:

    更新

    我需要足够的应用以下分辨率,所以我做了一点 VSCode 扩展来替换非打印 (NPC) 控制字符:

    https://github.com/appsoftwareltd/no-control

    希望对你有帮助!


    这个website的字符是

    Character: Â    
    ANSI Number: 194    
    Unicode Number: 194 
    ANSI Hex: 0xC2  
    Unicode Hex: U+00C2 
    HTML 4.0 Entity: Â    
    Unicode Name: Latin capital letter A with circumflex    
    Unicode Range: Latin-1 Supplement
    

    解决方案是用空格字符替换 [^\x00-\x7f] 的正则表达式匹配。

    在这里找到:

    https://weblogs.asp.net/kon/finding-those-pesky-unicode-characters-in-visual-studio

    【讨论】:

      猜你喜欢
      • 2012-07-18
      • 2011-09-12
      • 2011-07-15
      • 1970-01-01
      • 2012-09-14
      • 1970-01-01
      • 2021-01-29
      • 2015-12-17
      • 2023-03-11
      相关资源
      最近更新 更多