标签: non-printable

从python中的字符串中剥离不可打印的字符

我用来跑

$s =~ s/[^[:print:]]//g;
Run Code Online (Sandbox Code Playgroud)

在Perl上摆脱不可打印的字符.

在Python中没有POSIX正则表达式类,我不能写[:print:]让它意味着我想要的东西.我知道在Python中无法检测字符是否可打印.

你会怎么做?

编辑:它也必须支持Unicode字符.string.printable方式很乐意将它们从输出中剥离出来.对于任何unicode字符,curses.ascii.isprint都将返回false.

python string non-printable

81
推荐指数
9
解决办法
11万
查看次数

如何在vim正则表达式中替换或查找不可打印的字符?

我有一个带有一些不可打印字符的文件,它们显示为^ C或^ B,我想找到并替换这些字符,我该怎么做呢?

regex vim non-printable

35
推荐指数
7
解决办法
4万
查看次数

如何删除Linux文本中的所有特殊字符

vim pic 如何删除图片1中显示为蓝色的特殊字符,如:^ M,^ A,^ @,^ [.根据我的理解,^ M是一个Windows换行符,我可以sed -i '/^M//g'用来删除它,但它不能删除其他人.该命令dos2unix也不起作用.是否有任何方法可以用来删除它们?

linux sed non-printable

12
推荐指数
2
解决办法
5万
查看次数

在JavaScript中检测不可打印的字符

是否可以在JavaScript中检测二进制数据?

我希望能够检测二进制数据并将其转换为十六进制以便于阅读/调试.


经过更多调查后,我意识到检测二进制数据不是正确的问题,因为二进制数据可以包含常规字符和不可打印的字符.

Outis的问题和答案(/ [\ x00-\x1F] /)是我们在尝试检测二进制字符时所能做的最好的事情.

注意:您必须从ascii字符串序列中删除换行符和可能的其他字符,以使检查实际工作.

javascript binary hex ascii non-printable

10
推荐指数
1
解决办法
1万
查看次数

使用Win32 Perl中的XML :: Twig的字符串损坏和不可打印的字符

这是一个非常奇怪的问题.我几乎整天都把它简化为一个小的可执行脚本,完全展示了这个问题.

问题摘要:我正在使用XML :: Twig从XML文件中提取数据片段,然后我将该数据片段放在另一段数据的中间,让我们将其称为父数据.当我开始时,父数据在其开头具有这种奇怪的不可打印字符.它是供应商提供的数据,所以我无法控制它.我的问题是,在我将数据片段粘贴到父数据的中间之后,最终产品除了最初开始的字符之外还有一个新的非可打印字符.这个新的不可打印字符不在父数据中,也不在子数据片段中.我不知道它来自何处,也不知道它是如何进入我的数据的.

我怀疑它是一个XML :: Twig错误,因为在while循环中从文件句柄读取一行时发生字符串损坏,但是当我删除XML :: Twig代码时,我一直没有成功地重新创建我的问题我的脚本所以我不得不留下它.

这是我第一次体验我正在尝试处理的字符串中的不可打印字符.我需要做一些特别的事情而不是像普通的字符串那样对待它们吗?

我在Windows XP上使用ActiveState Perl 5.10.1和XML :: Twig 3.32(最新)和Eclipse 3.5.1 IDE.

这是一个演示问题的脚本:

use strict; 
use warnings; 
use XML::Twig; 

my $FALSE = 0;
my $TRUE = 1;
my $name = 'KurtsProgram';
my $task = 'MainTask';
my $hidden_char = "\xBF";
my $data = $hidden_char . 
'(*********************************************
  Data-File-Header-Junk
**********************************************)

    PROGRAM MainProgram ()
    END_PROGRAM

    TASK SecondaryTask ()
    END_TASK

    TASK MainTask ()
        MainProgram;
    END_TASK
';
my $new_data = insertProgram( $name, $task, $data …
Run Code Online (Sandbox Code Playgroud)

string perl non-printable corruption xml-twig

5
推荐指数
1
解决办法
1418
查看次数

如何使用 Java 检测和替换字符串中的不可打印字符?

例如我有一个这样的字符串:abc123[*]xyz[#]098[~]f9e

[*] 、 [#] 和 [~] 代表 3 个不同的不可打印字符。如何在 Java 中用“X”替换它们?

坦率

java replace character non-printable

5
推荐指数
1
解决办法
6793
查看次数

转换包含不可打印字符的字符串

我想将包含不可打印字符的字节数组转换为我的应用程序的字符串.当我转换回字节数组时,数组的内容应该保持相同,我发现ASCII/Unicode/UTF8总是给我正确的解决方案?

例如

 byte[] bytearray ={ 147, 35, 44, 18, 255, 104, 206, 72 ,69};

 string str = System.Text.Encoding.ASCII.GetString(bytearray);

 bytearray = System.Text.Encoding.ASCII.GetBytes(str);
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我发现字节数组包含

{ 63, 35, 44, 18, 63, 104, 63, 72 ,69}.
Run Code Online (Sandbox Code Playgroud)

请帮助我.

c# encoding non-printable

5
推荐指数
1
解决办法
2877
查看次数

由Cygwin打印不可打印的字符

Grepping不可打印的字符似乎不适用于回车(控制键^ M).

usr@R923047 ~
$ head -3 test.ctl
row 1
row 2
row 3
usr@R923047 ~
$ head -3 test.ctl | cat -nv
     1  row 1^M
     2  row 2^M
     3  row 3
usr@R923047 ~
$ head -3 test.ctl | grep '[^[:print:]]'

usr@R923047 ~
$ head -3 test.ctl | grep '[[:cntrl:]]'

usr@R923047 ~
Run Code Online (Sandbox Code Playgroud)

bash shell grep cygwin non-printable

4
推荐指数
1
解决办法
2021
查看次数

为什么POSIX"可打印字符"类与简单字符串不匹配?

我写了下面的脚本来测试"可打印字符"字符类,如所描述这里.

#!/bin/sh

case "foo" in
    *[:print:]*) echo "found a printable character" ;;
    *) echo "found no printable characters" ;;
esac
Run Code Online (Sandbox Code Playgroud)

我希望这个脚本输出found a printable character,至少有一个(实际上是所有)字符"foo"是可打印的.相反,它输出"found no printable characters".为什么字符"foo"不被识别为可打印字符?

regex linux shell posix non-printable

4
推荐指数
1
解决办法
517
查看次数

将MySQL LOAD DATA INFILE与不可打印的字符分隔符一起使用

我有一些供应商数据,其中SOH(ASCII字符1)作为字段分隔符,STX(ASCII字符2)作为记录分隔符.是否可以使用LOAD DATA INFILE加载此数据而无需预先处理文件并将这些字符替换为更常见的字符?

mysql non-printable delimiter load-data-infile

2
推荐指数
1
解决办法
4109
查看次数

MySQL group_concat SEPERATOR char或ascii

在MySQL中有没有办法在group_concat()中使用不可打印的符号定义SEPERATOR?像ascii 3或类似的东西?

我试过了

group_concat(text SEPERATOR char(3))
Run Code Online (Sandbox Code Playgroud)

group_concat(text SEPERATOR 3)
Run Code Online (Sandbox Code Playgroud)

他们俩都行不通.

也许是逃避的方法?

我得到很长的文本,我想确保没有可打印的标志会破坏我的内容.所以我想用不可打印的标志分开它们......

有任何想法吗?

mysql non-printable group-concat

2
推荐指数
1
解决办法
1069
查看次数

在bash脚本中找到仅包含可打印字符的文件

我正在尝试编写一个bash脚本,它查看一个充满文件的目录,并将它们分类为纯文本或二进制文件.如果文件仅包含明文字符,则文件为纯文本,否则为二进制文件.到目前为止,我已经尝试了以下grep的排列:

#!/bin/bash
FILES=`ls`
for i in $FILES
do
    ########GREP SYNTAX###########
    if grep -qv -e[:cntrl:] $i
    ########/GREP SYNTAX##########
    then
        mv $i $i-plaintext.txt
    else
        mv $i $i-binary.txt
    fi
done
Run Code Online (Sandbox Code Playgroud)

在grep语法行中,我也试过了没有-v标志并交换if语句的分支,以及它们与[:alnum:]和[:print:]的两种组合.这些变体中的所有六个产生一些标记为二进制的文件,其仅包含plantext和一些标记为明文的文件,其包含至少一个不可打印的字符.

我需要找到一种方法来识别包含可打印字符的文件,即AZ,az,0-9,标点符号,空格和新行.包含任何不在此集合中的字符的所有文件都应归类为二进制文件.

我一直在砸墙试图将它分类半天.救命!谢谢,Rik

bash grep non-printable

1
推荐指数
1
解决办法
2012
查看次数