gpt4 book ai didi

sas - 如何处理单引号和不可翻译的字符

转载 作者:行者123 更新时间:2023-12-02 04:31:37 27 4
gpt4 key购买 nike

我的 SAS 表包含一个包含句子的文本列。其中一些句子包含单引号,例如 don't 、 space's 。 . .每当我尝试将此表上传到 teradata 时,它都会抛出错误字符串包含不可翻译的字符

当我手动删除 ' 时,它会正常上传。

怎样才能用原来的方式正确上传原句?


我怀疑这不是常规的单引号

我试过了

varName = tranwrd(varName, "'",""); /* i also tried using ` instead of '  */

并且

varName = translate(varName, "","'"); /* i also tried using ` instead of '  */

但是字符串没有改变

最佳答案

一种可能性:不要手动删除它,而是“剪切”它,然后将其粘贴到 SAS 中,而不是键入 ' 或 ` 字符。

更一般地说,您可以通过查看字符的 $HEX. 版本来识别该字符的实际含义。

一个好的方法是首先删除已知的“好”字符。

data want;
set have;
step1 = compress(yourvar,,'ns');
put step1= $HEX.;
run;

删除(英文)字母和数字、下划线和空格类型字符(空格、制表符等)。这应该将您的字符串减少到相对较少的字符数;如果您想进一步限制它,请将字符添加到(当前缺少的)第二个参数。

现在,您可以查看十六进制输出并识别该字符是什么,希望相当容易。每 2 个十六进制字符映射到一个 ASCII 字符,除非您处于 Unicode 环境中,但情况可能并非如此(可能是 2 个,也可能多达 8 个)。你应该能够看到“坏”的性格。一旦找到它,您可以使用 '##'x 构造一个与它相同的字符,并使用 compress 删除它(compress 更有效地执行您想要使用 translate 执行的操作)。 IE,如果您有 '0A'x(换行),您可以使用

data want;
set have;
fixed=compress(yourvar,'0A'x);
run;

删除不需要的换行符。

关于sas - 如何处理单引号和不可翻译的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22940922/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com