我正在编写一个Windows RT应用程序(Windows 8.1),其中我使用SQLite作为数据库。当我将机器的语言设置更改为中文并尝试搜索具有中文名称的实体时,即使该文件存在,它也会返回null。在SQLite管理器中使用相同的查询时,它将返回相应的实体。 使用的代码:
var q = string.Format("SELECT Entity.* from Entity where upper(Name) like '%{0}%' or upper(Keywords) like '%{1}%' ", queryString, queryString);
return db.Query<Entity>(q);
这封信可能是“啊”
搜索工作正常。那么,我们是否必须在安装时启用某些功能以允许多语言操作?或者需要发送任何额外的参数来表明发送查询时语言是否不同?
答案 0 :(得分:0)
您可能需要将字符串格式化为UTF-8 / Unicode。 Suggested reading re internationalization
我不知道您正在使用哪种语言(C#我猜),但使用参数化查询可能有助于解决编码问题,it looks pretty simple to change to。避免SQL注入的奖励积分(见How do parameterized queries help against SQL injection?)这是一个本地应用程序,所以太严重......但仍然是不好的做法。