在网络系统里使用UTF-8字符集时,在以下的情况中怎样避免垃圾字符?(From DBMR 1847)
1. Web AP插入/选择UTF-8数据。
2. Web AP通过Ms Access插入数据和更新数据等等。
3. MS Access或dmSQL插入数据到DB然后Web AP选择数据。

~ 0 min
2016-02-24 05:06

1. Web AP运行UTF-8数据是没有问题的,DBMaster只支持U16LE。

2. 如果对nclob/nvarchar/nchar等类型的数据进行排序,客户可以使用ODBC驱动管理器来通过MS Access来访问数据。

3. 用户能够创建如nclob/nvarchar/nchar的字段类型来存储Unicode数据,但是应该通过它们自身的插入/获取功能从U8转换成U16LE。

4. 在通过dmSQL插入数据之前,首先应转换数据为Unicode,然后使用'xxxx'u 插入数据。这就意味不能直接通过dmSQL插入UTF-8,在插入之前应该将UTF-8转换为UTF-16,然后插入UTF-16数据。

这有两种方法:

A). DBMaster提供客户端UDF—U8toU16/U16toU8来帮助用户转换数据,当时它们的字段类型应该是如nclob/nchar/nvarchar这样的。

select u8tou16(c1) from t1;

这样数据将会是正确的,并且没有垃圾字符,dmSQL不懂这些易读的数据。

B). 像SQL Server一样,存储UTF8到二进位字段类型。但是不能使用数据库搜索功能(like...etc),这就是SQLServer的解决方法。

使用UDF应该更改它们的程序,但是使用二进制存储不需要更改。

平均分: 0 (0 投票)

你不能对该内容发表评论

标签