关于字符处理的一些坑和总结

简介: 关于字符处理的一些坑和总结

关于字符的处理一直是一个比较麻烦的事情,尤其是在跨平台的时候,要格外的小心,今天来记录一下自己的一些小经验。

1. 跨平台之间的处理

   在不同的平台之间,字符串的传递和处理可能不同,比如在一个平台传入的字符可能可以使用,但是在另一个平台传入执行,可能由于另一个平台的特性,会需要额外的处理。

   一个实例便是,在jenkins上的配置文件中,如果变量以","分隔,那变量可能传入时也会附带分号,如果是这种情况,后续就需要对变量单独处理。


2. 本地和远程上的处理

   这个和跨平台有些相似之处,一些在本地可以正常运行的脚本,如果传入CI/CD报错,除去环境的问题之外,大概率可能是一些字符的处理不同,这时候就要兼容不同的平台,来保证执行时获取的是最新的可用变量。


3. 特殊字符和命令行的处理

   特殊的字符主要有两大类,一类是特殊符号: 单引号,双引号,转义字符等。另一类是超长的字符串: cookie等。这些字符在不同平台上的表现形式是不一样的,需要判断是否需要单独处理。

   命令行中主要是换行符。一些平台会自动根据你拼接的命令加入换行符导致运行失败。


4. 累积经验值

    说了这几类情况,其实最重要的还是能更合理的应对这些情况,通过累积自己的经验,来更好的培养排查的方向,来更妥善的应对和处理。来说几点常见的方向:

  1) 对于命令行失败的情况,一般无外乎两种,一种是平台不支持该命令,另外一种便是这些字符引起的格式问题,导致不识别命令引起失败。

   2) 对于跨平台或者本地远程表现不一致的情况,如果没有头绪,也可以优先排查字符的情况是否匹配。

   3) 日志的辅助输出。对于可能出现问题的地方,可以增加日志的输出,方便排查。

   4) 注意细节的比对。日志的输出并不保险,尤其是一方可能多出单双引号的情况,导致以为是正常的,其实不是。

   5) 统一输入输出格式。其实这类问题本质还是格式不统一造成的,比如我们以为输出的是字符串,便没有进行格式化,其实结果并不是预想的,于是出错。


最后,又是继续探索的一天!

相关文章
|
1月前
|
存储 C语言
字符输入输出函数
字符输入输出函数
23 2
|
8月前
|
存储 算法
探索字符与字符串:基本库函数的使用(二)
探索字符与字符串:基本库函数的使用(二)
24 0
|
8月前
|
存储 安全 编译器
C语言字符及字符串讲解
C语言字符及字符串讲解
238 0
|
1月前
|
C语言
C语言—字符函数与字符串函数(字符问题变简单的关键之技)
C语言—字符函数与字符串函数(字符问题变简单的关键之技)
25 0
|
22天前
|
存储 Cloud Native Linux
单字符 和 宽字符
单字符 和 宽字符
|
11月前
字符+字符串函数 一
字符+字符串函数
31 0
转换大小写与完成字符串反转
转换大小写与完成字符串反转
66 0
|
7月前
|
存储 Serverless C语言
认识C语言 Day_3 >字符、字符串
认识C语言 Day_3 >字符、字符串
|
8月前
|
编译器
探索字符与字符串:基本库函数的使用(一)
探索字符与字符串:基本库函数的使用(一)
28 0