+ -
当前位置:首页 → 问答吧 → 字段内容包含特殊字符 如何原样输出到文本中

字段内容包含特殊字符 如何原样输出到文本中

时间:2011-07-05

来源:互联网

本帖最后由 showmetwo 于 2011-07-05 10:53 编辑

在取数据库中某字段值时, 发现其值为:C/$#*! My Dad Says Season 1/TV Series,其中包含$#这样的特殊字符
如果我使用sqlScript="insert into table values('$abc')", 那么其结果为C/0*! My Dad Says Season 1/TV Series
请问 如何原样把字段的值输入到文本中? 因为字段的值还有可能有其他特殊符号,我不想一一处理,有没有其他办法能够原样输出呢?谢谢~ :em14:


问题补充:
谢谢大家 不过我没有表达清楚 请看我的代码:

#从数据库导出字段到文件后
cat $file|while read line
do

#因为是KSH 所以数组只能这样设定 字段里包含空格 所以在前后及字段间分隔符上 都加上双引号分组 恐怕在赋值的时候 特殊字符已经被转换了
eval set -A infor $(echo $line | sed 's/^/"/;s/$/"/;s/\^/" "/g')

sqlScript="insert into table values('${infor[0]}','${infor[1]}')"
echo sqlScript>>$fileName
done

已解决

谢谢大家了 我已经自己解决了 3Q

eval set -A infor $(echo $line | sed 's/^/"/;s/$/"/;s/\^/" "/g')
变为
eval set -A infor $(echo '$line' | sed "s/^/\"'/;s/$/'\"/;s/\^/'\" \"'/g")

作者: showmetwo   发布时间: 2011-07-05

本帖最后由 rdcwayx 于 2011-07-05 10:28 编辑

楼下的方法不错,我这个就清了

作者: rdcwayx   发布时间: 2011-07-05

回复 showmetwo
  1. abc='C/$#*! My Dad Says Season 1/TV Series'

  2. echo $abc
  3. C/$#*! My Dad Says Season 1/TV Series

  4. abc="C/$#*! My Dad Says Season 1/TV Series"

  5. echo $abc
  6. C/0*! My Dad Says Season 1/TV Series
复制代码

作者: yinyuemi   发布时间: 2011-07-05

回复 showmetwo


abc='C/$#*! My Dad Says Season 1/TV Series';echo "insert into table values ('${abc}');"

作者: ltomuno   发布时间: 2011-07-05

谢谢大家 不过我没有表达清楚 请看我的代码:

#从数据库导出字段到文件后
cat $file|while read line
do

#因为是KSH 所以数组只能这样设定 字段里包含空格 所以在前后及字段间分隔符上 都加上双引号分组 恐怕在赋值的时候 特殊字符已经被转换了
eval set -A infor $(echo $line | sed 's/^/"/;s/$/"/;s/\^/" "/g')

sqlScript="insert into table values('${infor[0]}','${infor[1]}')"
echo sqlScript>>$fileName
done

作者: showmetwo   发布时间: 2011-07-05

谢谢大家了 我已经自己解决了 3Q

eval set -A infor $(echo $line | sed 's/^/"/;s/$/"/;s/\^/" "/g')
变为
eval set -A infor $(echo '$line' | sed "s/^/\"'/;s/$/'\"/;s/\^/'\" \"'/g")

作者: showmetwo   发布时间: 2011-07-05