如何替换EOT字符

时间:2015-10-06 14:08:07

标签: java

这是我的问题。

我使用servlet从后台系统导入数据并将数据保存到我的SQL Server。在数据中有EOT字符(传输结束)。

当我在我的sql server管理工作室中查看记录时,我看到如下图所示:

enter image description here

当我在Notepad ++中复制/粘贴文本时,我得到了这个:

enter image description here

我很清楚,在我的数据库中,我有EOT字符。

如何在前端替换此字符以显示<br/>

之类的内容

我尝试str.replace("\0","<br/>")提到here,但没有运气。

有没有人有线索?

2 个答案:

答案 0 :(得分:5)

答案是使用.replace("\4", "<br/>"),其中4之后的\是ASCII表格中EOT的十进制值

   Oct   Dec   Hex   Char                        Oct   Dec   Hex   Char
   ------------------------------------------------------------------------
   000   0     00    NUL '\0'                    100   64    40    @
   001   1     01    SOH (start of heading)      101   65    41    A
   002   2     02    STX (start of text)         102   66    42    B
   003   3     03    ETX (end of text)           103   67    43    C
   004   4     04    EOT (end of transmission)   104   68    44    D
   005   5     05    ENQ (enquiry)               105   69    45    E
   006   6     06    ACK (acknowledge)           106   70    46    F
   007   7     07    BEL '\a' (bell)             107   71    47    G
   010   8     08    BS  '\b' (backspace)        110   72    48    H
   011   9     09    HT  '\t' (horizontal tab)   111   73    49    I
   012   10    0A    LF  '\n' (new line)         112   74    4A    J
   013   11    0B    VT  '\v' (vertical tab)     113   75    4B    K
   014   12    0C    FF  '\f' (form feed)        114   76    4C    L
   015   13    0D    CR  '\r' (carriage ret)     115   77    4D    M
   016   14    0E    SO  (shift out)             116   78    4E    N
   017   15    0F    SI  (shift in)              117   79    4F    O
   020   16    10    DLE (data link escape)      120   80    50    P 

答案 1 :(得分:1)

我可以通过几种方式来做到这一点。蛮力方法是创建一个方法来消毒你得到的字符串;也许通过将字符串转换为一组字符,您扫描以删除此字符以及您不想要的任何其他字符,并返回一个新的字符串。

不看,我假设有些库可以用来清理字符串。我假设Guava和Apache Java库具有可以以这种方式清理字符串的方法。

问题是知道是否以及何时可以将此字符串本质上视为一系列字节,何时不能。我可能会找到一个十六进制编辑器甚至POSIX [<Literal>] let len = arr.Length 命令来查看您正在清理的数据的实际字节。