一、问题来源
我们在使用ArcGIS的时候,经常遇到需要给某个字段赋值中文字符的情况,你要是按照字段计算器默认给的方式直接写入中文字符,会弹出错误,如图1所示。
![图1](https://img-blog.csdnimg.cn/d039745db5464973b171106aabfa8df5.png)
二、问题分析
经过搜索和多方咨询,是因为ArcGIS默认是用的VB脚本赋值,只支持数字和符号,不支持中文字符。即使你勾选了字符串,都不行!如图2所示。
![](https://img-blog.csdnimg.cn/933e45bffcfb4868aff9035691785499.png)
三、解题方法
方法一:
经过多次尝试,把解析程序勾选成Python,并在需要赋值的中文字符用英文的单引号或者双引号包起来即可。经过验证,你选择类型是数字、字符串还是日期都没有关系,因为你用引号包起来的内容,在Python语言的环境里已经把这部分定义为字符串了。如图3所示。
![](https://img-blog.csdnimg.cn/65f45010d76140bdbaae959627c2c4c1.png)
此时你如果勾选【显示代码块】看到的Python代码也是‘中文字符’,如图4所示。
#单引号和双引号均可,但必须是英文状态下的引号!
'中文字符'"中文字符"
方法二:
因为对VB脚本不理解,错怪它了,其实用VB脚本也可以把中文字符赋值给字段,但是必须用英文状态下的双引号包起来,单引号经过测试不行,必须是双引号,这跟Python不同。