CN111475234B - 一种字符串传递方法、装置、计算机及可读存储介质 - Google Patents
一种字符串传递方法、装置、计算机及可读存储介质 Download PDFInfo
- Publication number
- CN111475234B CN111475234B CN202010279076.8A CN202010279076A CN111475234B CN 111475234 B CN111475234 B CN 111475234B CN 202010279076 A CN202010279076 A CN 202010279076A CN 111475234 B CN111475234 B CN 111475234B
- Authority
- CN
- China
- Prior art keywords
- character string
- target
- transcoding
- special
- characters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000005540 biological transmission Effects 0.000 title abstract description 14
- 238000013515 script Methods 0.000 claims abstract description 92
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012546 transfer Methods 0.000 claims description 7
- 238000002716 delivery method Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Document Processing Apparatus (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种字符串传递方法、装置、计算机及可读存储介质,该方法包括以下步骤:获得目标字符串,并在目标字符串中的每个特殊字符前添加转义符;特殊字符为无法准确传递至目标脚本的字符;将特殊字符转为ASCII码形式的转码字符,得到转码字符串;将转码字符串通过shell传递给目标脚本;调用目标脚本对转码字符串进行解码,得到目标字符串。相较于现有的复杂转义,本方法实现更为简单,能够有效避免特殊字符被shell特殊处理。
Description
技术领域
本发明涉及计算机软件技术领域,特别是涉及一种字符串传递方法、装置、计算机及可读存储介质。
背景技术
在Linux程序设计中,经常会涉及在程序中调用脚本的场景,在大部分情况下,程序传递给脚本的参数都是比较简单的。但在某些情况下,比如需要将含有多种特殊字符的密码写入文件,那么就涉及到特殊字符的传递。如果在Linux环境中直接将含有特殊字符的字符串作为参数传递给脚本,那么shell会将某些特殊字符预先进行特殊处理。比如“$$”将被作为进程的PID(Process Identification,操作系统里的进程识别号,即进程标识符),也就是说,如果参数字符串含有“$$”,那么脚本接收到的将会是一串表示进程PID的数字字符,这就会导致脚本接收一个错误的参数,进而导致执行出错。
针对于这种情况,就需要对这些含有特殊字符的字符串进行处理。其中一种比较经典的方法是使用字符转义符“\”对特殊字符进行转义。比如$$可以加转义符变成“\$\$”。当特殊字符比较少时,这种方式是可行的,但是当特殊字符数量很多时,或者含有特殊字符的参数很多时,逐个加转义符则会很麻烦。而且在某些情况下,脚本获得这些字符串后,需要将它们写入文件,这样就要对特殊字符进行两层转义,一层用于程序和脚本间参数的传递,一层用于脚本和文件参数的传递。转义的层数过多,就会使得转义过程非常麻烦,容易出现错误。
综上所述,如何有效地解决特殊字符的传递等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种字符串传递方法、装置、计算机及可读存储介质,以Linux程序调用目标脚本时,能够准确无误的将特殊字符传递给目标脚本。
为解决上述技术问题,本发明提供如下技术方案:
一种字符串传递方法,其特征在于,包括:
获得目标字符串,并在所述目标字符串中的每个特殊字符前添加转义符;所述特殊字符为无法准确传递至目标脚本的字符;
将所述特殊字符转为ASCII码形式的转码字符,得到转码字符串;
将所述转码字符串通过shell传递给所述目标脚本;
调用所述目标脚本对所述转码字符串进行解码,得到所述目标字符串。
优选地,将所述特殊字符转为ASCII码形式,得到转码字符串,包括:
将所述特殊字符串转为x+ASCII码形式,得到所述转码字符串。
优选地,将所述特殊字符串转为x+ASCII码形式,得到所述转码字符串,包括:
利用字符串格式化命令,将所述特殊字符串转为x+ASCII码形式,得到所述转码字符串。
优选地,调用所述目标脚本对所述转码字符串进行解码,得到所述目标字符串,包括:
将所述转码字符串中的每一个x替换为\\x;
利用字符串显示命令对所述转码字符串中的转码字符进行解码并更替,得到所述目标字符串。
优选地,所述获得目标字符串,包括:
判断待传递字符串是否包括所述特殊字符;
如果是,则将所述待传递字符串作为所述目标字符串。
优选地,在调用所述目标脚本对所述转码字符串进行解码,得到所述目标字符串之后,还包括:
利用所述目标字符串对目标文件进行修改。
优选地,利用所述目标字符串对所述目标文件进行修改,包括:
调用写文件工具,利用所述目标字符串对所述目标文件进行修改。
一种字符串传递装置,包括:
Linux程序,用于获得目标字符串,并在所述目标字符串中的每个特殊字符前添加转义符;所述特殊字符为无法准确传递至目标脚本的字符;将所述特殊字符转为ASCII码形式的转码字符,得到转码字符串;将所述转码字符串通过shell传递给所述目标脚本;
目标脚本,用于接受所述Linux程序的调用,对所述转码字符串进行解码,得到所述目标字符串。
一种计算机,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述字符串传递方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述字符串传递方法的步骤。
应用本发明实施例所提供的方法,获得目标字符串,并在目标字符串中的每个特殊字符前添加转义符;特殊字符为无法准确传递至目标脚本的字符;将特殊字符转为ASCII码形式的转码字符,得到转码字符串;将转码字符串通过shell传递给目标脚本;调用目标脚本对转码字符串进行解码,得到目标字符串。
在本方法中,当待传递给目标脚本的字符串中包括特殊字符串时,首先在每个特殊字符串前添加转义符,然后将特殊字符转为ASCII码形式的转码字符,得到转码字符串。即,转码字符串中不再包括特殊字符,可顺利通过shell传递给目标脚本。然后调用目标脚本时,目标脚本对转码字符串进行解码,即可得到目标字符串。也就是说,在传递目标字符串之前进行转义,转码,便可得到能够传递给目标脚本的转码字符串,而在传递转码字符串之后,调用目标脚本对转码字符串进行解码,即可得到目标字符串。如此,便可使得原本无法准确传递至目标脚本的特殊字符,准确地传递给了目标脚本。相较于现有的复杂转义,本方法实现更为简单,能够有效避免特殊字符被shell特殊处理。
相应地,本发明实施例还提供了与上述字符串传递方法相对应的字符串传递装置、计算机和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种字符串传递方法的实施流程图;
图2为本发明实施例中一种字符串传递装置的结构示意图;
图3为本发明实施例中一种计算机的结构示意图;
图4为本发明实施例中一种计算机的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
请参考图1,图1为本发明实施例中一种字符串传递方法的流程图,该方法可应用于安装了linux系统的计算机中,有该计算机中的程序实现该方法的步骤。该方法包括以下步骤:
S101、获得目标字符串,并在目标字符串中的每个特殊字符前添加转义符。
其中,特殊字符为无法准确传递至目标脚本的字符。例如,特殊字符可包括但不限于“$$”、“<”、“>”、“;”、“’”、“””、“`”、“|”、“!”、“(”、“&”。其中,“$$”,会被shell被作为进程的PID,shell会进行特殊处理,那么脚本接收到的将会是一串表示进程PID的数字字符,即导致脚本接收一个错误的参数,进而导致执行出错;对于“<”、“>”,linux系统误以为是输出导向符,“<”、“>”不会被进行传递,且linux系统会报找不到文件错误;“;”字符,会被linux系统当成命令结束符,linux系统把“;”字符后面的内容当成命令来执行;单个的单引号“’”,双引号“””,倒引号“`”会被linux系统认为数据没有输出完,造成系统等待输入的情况,“|”会被linux系统当成管道符号,“|”字符后面的内容会被当成命令来执行;“!”字符会被当成逻辑“非”,linux系统会报错“event not found”,“(”字符会被linux系统认为是指令群组而报语法错误;“&”会被linux系统认为是后台执行指令,这会导致“&”以及“&”后面的内容不会被传递。当这些特殊字符组合起来使用时,甚至可能得到意想不到的结果。
其中,目标脚本即可需接收目标字符串的脚本,该脚本本身可为文件修改脚本,也可为其他脚本。
在本实施例中,可预先将无法准确传递至目标脚本的字符进行存储,以便对需要传递至脚本的字符串进行比对,确定是否需要进行转义处理。也就是说,获得目标字符串,包括:
步骤一、判断待传递字符串是否包括特殊字符;
步骤二、如果是,则将待传递字符串作为目标字符串。
其中,待传递字符串可具体为用户输入的密码或配置信息等需要传递给目标脚本的字符串。
可通过遍历查询待传递字符串的方式,确定出待传递字符串中是否包括特殊字符,如果包括特殊字符串,则将该待传递字符串作为目标字符串,如果不包括特殊字符串则可忽略,即可直接传递给目标脚本。
获得目标字符串之后,则可对目标字符串中的特殊字符进行标注,以便进行转义处理。具体的,可在每一个特殊字符前添加转义符,即“/”。例如,若目标字符串中包括特殊字符“>”,则添加转义符,即“/>”;若目标字符串为“12eD>”则添加了转义符之后,得到的转码字符串为“12eD/>”。当然,在实际应用中,特殊字符的数量和种类可为多个,在此不再一一列举。
S102、将特殊字符转为ASCII码形式的转码字符,得到转码字符串。
ASCII(American Standard Code for Information Interchange),即基于拉丁字母的一套电脑编码系统,是一种通用的信息交换标准。
在本实施例中,将添加了转义符的特殊字符转为ASCII码形式的转码字符,然后便可得到转码字符串。即转码字符串中无特殊字符,取而代之的是特殊字符对应的ASCII码形式的转码字符串。采用ASCII码格式不但能解决特殊字符的问题,还能在目标脚本接收到转码字符串后被快速解码。
优选地,考虑到传递至目标脚本之后,还需调用目标脚本对转码字符串进行解码处理,为了提高解码效率,在本实施例中还可将特殊字符转为x+ASCII码形式。也就是说,可将特殊字符串转为x+ASCII码形式,得到转码字符串。将特殊字符转化为x+ASCII码的形式的方式有多种。进一步地,为了加快转码效率,可利用字符串格式化命令,将特殊字符串转为x+ASCII码形式,得到转码字符串。即,遍历目标字符串找出添加了转义符的特殊字符,对每个特殊字符,转化成x+ASCII码的形式。可使用sprintf()函数(即字符串格式化命令)指定16进制格式输出,能够快速达到转码的效果。其中,x主要是为了方便脚本对ASCII字符串进行16进制转义,从而起到解码ASCII码的作用。这一步最终会形成一个新的由字符x和ASCII码组成的字符串,其形式为xhhxhhxhhxhh…,其中hh为16进制ASCII数字。
对目标字符串中的特殊字符串进行转码之后,便可获得转码字符串。
S103、将转码字符串通过shell传递给目标脚本。
由于转码字符串中不再包括特殊字符,因而shell不会对特殊字符进行特殊处理,如不会在更改转码字符串中的字符。
S104、调用目标脚本对转码字符串进行解码,得到目标字符串。
解码的过程与转码、转义相对应。即,对转码字符进行解码,得到特殊字符,并基于特殊字符串将转码字符串中的转码字符更换为特殊字符,得到目标字符串。若转字符串中的转码字符为ASCII码形式,则直接将ASCII码形式的转码字符解码,得到特殊字符。
若转码字符串中的转码字符为x+ASCII码形式,则解码的具体实现过程,可包括:
步骤一、将转码字符串中的每一个x替换为\\x;
步骤二、利用字符串显示命令对转码字符串中的转码字符进行解码并更替,得到目标字符串。
即,目标脚本在接收到转码字符串后,需要有两步操作来解码ASCII字符串。第一步可使用sed命令将字符串里每一个“x”替换为为“\\x”。其中第一个“\”是为了对第二个“\”进行转义,而第二个“\”和“x”结合起来形成的“\x”表示16进制转义字符。第二步,可使用echo–e命令(即字符串显示命令)来解码ASCII字符,主要原理是-e选项会对特殊字符“\x”进行特殊处理,从而使“\x”发挥了16进制转义的作用。经过这一步,ASCII数字已被转化为普通格式的字符,即恢复为特殊字符的样式。
应用本发明实施例所提供的方法,获得目标字符串,并在目标字符串中的每个特殊字符前添加转义符;特殊字符为无法准确传递至目标脚本的字符;将特殊字符转为ASCII码形式的转码字符,得到转码字符串;将转码字符串通过shell传递给目标脚本;调用目标脚本对转码字符串进行解码,得到目标字符串。
在本方法中,当待传递给目标脚本的字符串中包括特殊字符串时,首先在每个特殊字符串前添加转义符,然后将特殊字符转为ASCII码形式的转码字符,得到转码字符串。即,转码字符串中不再包括特殊字符,可顺利通过shell传递给目标脚本。然后调用目标脚本时,目标脚本对转码字符串进行解码,即可得到目标字符串。也就是说,在传递目标字符串之前进行转义,转码,便可得到能够传递给目标脚本的转码字符串,而在传递转码字符串之后,调用目标脚本对转码字符串进行解码,即可得到目标字符串。如此,便可使得原本无法准确传递至目标脚本的特殊字符,准确地传递给了目标脚本。相较于现有的复杂转义,本方法实现更为简单,能够有效避免特殊字符被shell特殊处理。
需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
优选地,在执行上述步骤S104之后,目标脚本即得到了目标字符串,此时可直接利用目标字符串对目标文件进行修改。具体的,可调用写文件工具,利用目标字符串对目标文件进行修改。
转码字符串中的转码字符被转义为普通字符后,就可以进行写文件的操作了。例如,可采用常用的写文件的工具有awk,sed。在使用这些工具进行修改文件的操作时,传入的字符串参数里某些特殊字符也会被处理,比如“\”会被作为转义符处理,这样“\n”会首先被认为是“n”,而达不到空格的作用。但是,由于步骤S101中,字符串转义操作中,已经对特殊字符加了转义,也就是字符串里的“\n”已经在第一步中被处理为“\\n”,所以即使使用awk或者sed处理执行了步骤S104后得到的目标字符串,也不会发生错误。
实施例二:
相应于上面的方法实施例,本发明实施例还提供了一种字符串传递装置,下文描述的字符串传递装置与上文描述的字符串传递方法可相互对应参照。
参见图2所示,该装置包括以下模块:
Linux程序100,用于获得目标字符串,并在目标字符串中的每个特殊字符前添加转义符;特殊字符为无法准确传递至目标脚本的字符;将特殊字符转为ASCII码形式的转码字符,得到转码字符串;将转码字符串通过shell传递给目标脚本;
目标脚本200,用于接受Linux程序的调用,对转码字符串进行解码,得到目标字符串。
应用本发明实施例所提供的装置,获得目标字符串,并在目标字符串中的每个特殊字符前添加转义符;特殊字符为无法准确传递至目标脚本的字符;将特殊字符转为ASCII码形式的转码字符,得到转码字符串;将转码字符串通过shell传递给目标脚本;调用目标脚本对转码字符串进行解码,得到目标字符串。
在本装置中,当待传递给目标脚本的字符串中包括特殊字符串时,首先在每个特殊字符串前添加转义符,然后将特殊字符转为ASCII码形式的转码字符,得到转码字符串。即,转码字符串中不再包括特殊字符,可顺利通过shell传递给目标脚本。然后调用目标脚本时,目标脚本对转码字符串进行解码,即可得到目标字符串。也就是说,在传递目标字符串之前进行转义,转码,便可得到能够传递给目标脚本的转码字符串,而在传递转码字符串之后,调用目标脚本对转码字符串进行解码,即可得到目标字符串。如此,便可使得原本无法准确传递至目标脚本的特殊字符,准确地传递给了目标脚本。相较于现有的复杂转义,本装置实现更为简单,能够有效避免特殊字符被shell特殊处理。
在本发明的一种具体实施方式中,Linux程序100,具体用于将特殊字符串转为x+ASCII码形式,得到转码字符串。
在本发明的一种具体实施方式中,Linux程序100,具体用于利用字符串格式化命令,将特殊字符串转为x+ASCII码形式,得到转码字符串。
在本发明的一种具体实施方式中,目标脚本200,具体用于将转码字符串中的每一个x替换为\\x;利用字符串显示命令对转码字符串中的转码字符进行解码并更替,得到目标字符串。
在本发明的一种具体实施方式中,Linux程序100,具体用于判断待传递字符串是否包括特殊字符;如果是,则将待传递字符串作为目标字符串。
在本发明的一种具体实施方式中,目标脚本200,具体用于在调用目标脚本对转码字符串进行解码,得到目标字符串之后,利用目标字符串对目标文件进行修改。
在本发明的一种具体实施方式中,目标脚本200,具体用于调用写文件工具,利用目标字符串对目标文件进行修改。
实施例三:
相应于上面的方法实施例,本发明实施例还提供了一种计算机,下文描述的一种计算机与上文描述的一种字符串传递方法可相互对应参照。
参见图3所示,该计算机包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现上述方法实施例的字符串传递方法的步骤。
具体的,请参考图4,为本实施例提供的一种计算机的具体结构示意图,该计算机可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在计算机301上执行存储介质330中的一系列指令操作。
计算机301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,至少一个Linux操作系统341。
上文所描述的字符串传递方法中的步骤可以由计算机的结构实现。
实施例四:
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种字符串传递方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的字符串传递方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
Claims (8)
1.一种字符串传递方法,其特征在于,包括:
获得目标字符串,并在所述目标字符串中的每个特殊字符前添加转义符;所述特殊字符为无法准确传递至目标脚本的字符;
将所述特殊字符转为ASCII码形式的转码字符,得到转码字符串;
将所述转码字符串通过shell传递给所述目标脚本;
调用所述目标脚本对所述转码字符串进行解码,得到所述目标字符串;
其中,将所述特殊字符转为ASCII码形式,得到转码字符串,包括:
将所述特殊字符串转为x+ASCII码形式,得到所述转码字符串;其中,所述x+ASCII码为x+16进制的ASCII数字;
调用所述目标脚本对所述转码字符串进行解码,得到所述目标字符串,包括:
将所述转码字符串中的每一个x替换为\\x;
利用字符串显示命令对所述转码字符串中的转码字符进行解码并更替,得到所述目标字符串;所述字符串显示命令为echo –e命令;以便使用所述echo –e命令来解码\ASCII字符,原理为-e选项会对特殊字符\x进行特殊处理,从而使\x发挥了16进制转义的作用。
2.根据权利要求1所述的字符串传递方法,其特征在于,将所述特殊字符串转为x+ASCII码形式,得到所述转码字符串,包括:
利用字符串格式化命令,将所述特殊字符串转为x+ASCII码形式,得到所述转码字符串。
3.根据权利要求1所述的字符串传递方法,其特征在于,所述获得目标字符串,包括:
判断待传递字符串是否包括所述特殊字符;
如果是,则将所述待传递字符串作为所述目标字符串。
4.根据权利要求1所述的字符串传递方法,其特征在于,在调用所述目标脚本对所述转码字符串进行解码,得到所述目标字符串之后,还包括:
利用所述目标字符串对目标文件进行修改。
5.根据权利要求4所述的字符串传递方法,其特征在于,利用所述目标字符串对所述目标文件进行修改,包括:
调用写文件工具,利用所述目标字符串对所述目标文件进行修改。
6.一种字符串传递装置,其特征在于,包括:
Linux程序,用于获得目标字符串,并在所述目标字符串中的每个特殊字符前添加转义符;所述特殊字符为无法准确传递至目标脚本的字符;将所述特殊字符转为ASCII码形式的转码字符,得到转码字符串;将所述转码字符串通过shell传递给所述目标脚本;
目标脚本,用于接受所述Linux程序的调用,对所述转码字符串进行解码,得到所述目标字符串;
其中,将所述特殊字符转为ASCII码形式,得到转码字符串,包括:
将所述特殊字符串转为x+ASCII码形式,得到所述转码字符串;其中,所述x+ASCII码为x+16进制的ASCII数字;
调用所述目标脚本对所述转码字符串进行解码,得到所述目标字符串,包括:
将所述转码字符串中的每一个x替换为\\x;
利用字符串显示命令对所述转码字符串中的转码字符进行解码并更替,得到所述目标字符串;所述字符串显示命令为echo –e命令;以便使用所述echo –e命令来解码\ASCII字符,原理为-e选项会对特殊字符\x进行特殊处理,从而使\x发挥了16进制转义的作用。
7.一种计算机,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述字符串传递方法的步骤。
8.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述字符串传递方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010279076.8A CN111475234B (zh) | 2020-04-10 | 2020-04-10 | 一种字符串传递方法、装置、计算机及可读存储介质 |
US17/916,832 US20230214577A1 (en) | 2020-04-10 | 2021-01-26 | Character string transmission method and device, computer, and readable storage medium |
PCT/CN2021/073700 WO2021203802A1 (zh) | 2020-04-10 | 2021-01-26 | 一种字符串传递方法、装置、计算机及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010279076.8A CN111475234B (zh) | 2020-04-10 | 2020-04-10 | 一种字符串传递方法、装置、计算机及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475234A CN111475234A (zh) | 2020-07-31 |
CN111475234B true CN111475234B (zh) | 2023-01-10 |
Family
ID=71751798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010279076.8A Active CN111475234B (zh) | 2020-04-10 | 2020-04-10 | 一种字符串传递方法、装置、计算机及可读存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230214577A1 (zh) |
CN (1) | CN111475234B (zh) |
WO (1) | WO2021203802A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475234B (zh) * | 2020-04-10 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种字符串传递方法、装置、计算机及可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110932822A (zh) * | 2019-12-02 | 2020-03-27 | 泰康保险集团股份有限公司 | 数据编码方法、数据解码方法、装置、设备及存储介质 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5031225A (en) * | 1987-12-09 | 1991-07-09 | Ricoh Company, Ltd. | Character recognition method for recognizing character in an arbitrary rotation position |
EP0455700A1 (en) * | 1989-01-24 | 1991-11-13 | Dolphin Imaging Systems Inc. | Method and apparatus for generating cephalometric images |
USRE34476E (en) * | 1990-05-14 | 1993-12-14 | Norwood Donald D | Hybrid information management system for handwriting and text |
US5138304A (en) * | 1990-08-02 | 1992-08-11 | Hewlett-Packard Company | Projected image light pen |
US5347295A (en) * | 1990-10-31 | 1994-09-13 | Go Corporation | Control of a computer through a position-sensed stylus |
EP0498082B1 (en) * | 1991-02-01 | 1998-05-06 | Koninklijke Philips Electronics N.V. | Apparatus for the interactive handling of objects |
JP3190074B2 (ja) * | 1991-09-11 | 2001-07-16 | 株式会社東芝 | 手書き入力装置 |
US5652806A (en) * | 1992-01-10 | 1997-07-29 | Compaq Computer Corporation | Input device with data targeting to determine an entry field for a block of stroke data |
US5347477A (en) * | 1992-01-28 | 1994-09-13 | Jack Lee | Pen-based form computer |
US5583543A (en) * | 1992-11-05 | 1996-12-10 | Sharp Kabushiki Kaisha | Pen input processing apparatus |
US5502803A (en) * | 1993-01-18 | 1996-03-26 | Sharp Kabushiki Kaisha | Information processing apparatus having a gesture editing function |
JPH0816313A (ja) * | 1994-07-04 | 1996-01-19 | Sanyo Electric Co Ltd | 手書き入力方法及び装置 |
US5737443A (en) * | 1994-11-14 | 1998-04-07 | Motorola, Inc. | Method of joining handwritten input |
JPH08228275A (ja) * | 1995-02-22 | 1996-09-03 | Canon Inc | ファクシミリ装置 |
US5902968A (en) * | 1996-02-20 | 1999-05-11 | Ricoh Company, Ltd. | Pen-shaped handwriting input apparatus using accelerometers and gyroscopes and an associated operational device for determining pen movement |
US5862256A (en) * | 1996-06-14 | 1999-01-19 | International Business Machines Corporation | Distinguishing gestures from handwriting in a pen based computer by size discrimination |
US5864635A (en) * | 1996-06-14 | 1999-01-26 | International Business Machines Corporation | Distinguishing gestures from handwriting in a pen based computer by stroke analysis |
JP3006545B2 (ja) * | 1997-06-09 | 2000-02-07 | 日本電気株式会社 | オンライン文字認識装置 |
US6408092B1 (en) * | 1998-08-31 | 2002-06-18 | Adobe Systems Incorporated | Handwritten input in a restricted area |
US6906721B1 (en) * | 2000-07-07 | 2005-06-14 | American Megatrends, Inc. | Systems, methods, and computer program products for managing the display of information output by a computer program |
CN101374246A (zh) * | 2007-08-21 | 2009-02-25 | 中兴通讯股份有限公司 | 一种业务受理人机语言命令中保留字符的处理方法 |
CN102073626A (zh) * | 2010-12-30 | 2011-05-25 | 周军 | 气象报文智能匹配规则 |
CN105843955A (zh) * | 2016-04-13 | 2016-08-10 | 曙光信息产业(北京)有限公司 | 一种数据迁移系统 |
CN111475234B (zh) * | 2020-04-10 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种字符串传递方法、装置、计算机及可读存储介质 |
-
2020
- 2020-04-10 CN CN202010279076.8A patent/CN111475234B/zh active Active
-
2021
- 2021-01-26 US US17/916,832 patent/US20230214577A1/en active Pending
- 2021-01-26 WO PCT/CN2021/073700 patent/WO2021203802A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110932822A (zh) * | 2019-12-02 | 2020-03-27 | 泰康保险集团股份有限公司 | 数据编码方法、数据解码方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021203802A1 (zh) | 2021-10-14 |
US20230214577A1 (en) | 2023-07-06 |
CN111475234A (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109902274B (zh) | 一种将json字符串转化为thrift二进制流的方法及系统 | |
US7958133B2 (en) | Application conversion of source data | |
CN107566090B (zh) | 一种定长/变长的文本报文处理方法及装置 | |
US20120096185A1 (en) | Methods, systems, and apparatus for processing messaging data sets using structured data sets | |
CN111475234B (zh) | 一种字符串传递方法、装置、计算机及可读存储介质 | |
CN112188211A (zh) | 一种转码实现方法和装置 | |
US8997116B2 (en) | Event logging application programming interface (API) | |
US6976263B2 (en) | Mechanism for encoding and decoding upgradeable RPC/XDR structures | |
JP2009252153A5 (zh) | ||
CN112732731A (zh) | 业务数据的消费方法、装置、电子设备和可读存储介质 | |
CN108762762B (zh) | 会话信息管理方法、装置、设备和计算机存储介质 | |
CN113918770B (zh) | 字符串与时间字段的转换方法及装置 | |
CN110548285B (zh) | 游戏通信控制方法及装置、介质及电子设备 | |
CN111246427B (zh) | 辅链路的传输控制方法、系统、设备、介质及辅链路终端 | |
CN114265638A (zh) | 基于插件兼容的通信方法、装置、设备及存储介质 | |
CN114070470A (zh) | 编解码方法及装置 | |
CN114281297A (zh) | 多音频流的传输管理方法、装置、设备及存储介质 | |
CN111176874B (zh) | 应用程序异常退出的处理方法、装置、设备及存储介质 | |
KR101668441B1 (ko) | 이기종 장치의 데이터 수집을 위한 미들웨어 간 인터페이스 장치 및 방법 | |
US7132962B1 (en) | Methods and apparatuses for character conversion control | |
CN109697216A (zh) | 交易信息处理方法、装置及系统 | |
CN103561105A (zh) | 一种图片传送方法、发送端及接收端 | |
CN116489235A (zh) | 日志数据导出方法、装置、设备和存储介质 | |
US11593113B2 (en) | Widening memory access to an aligned address for unaligned memory operations | |
CN110321274B (zh) | 一种应用程序的测试方法、装置、计算设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |