我有一个免费的Android应用程序,已经超出了原有的用户群。我遇到过这样的情况:这种的String.format产生无效的SQL字符串:那肯定造成一个问题是用户的定位是为阿拉伯语,因此客户ID在阿拉伯语字符表示在Android中,如果你用一个整数连接一个字符串,是整数本地化?
String sql = String.format ("SELECT name from customers where cust_id=%d", cust_id);
一种情况。
我定像这样的特殊问题:
String sql = String.format (Locale.ENGLISH, "SELECT name from customers where cust_id=%d", cust_id);
什么延迟找到一个解决方案是,因为它是一个免费的应用程序,大多数人都没有报告problem-他们刚刚停止使用的应用程序:我只能从崩溃日志中找到。此外,本地化的本质似乎取决于所选择的语言以及Android的版本......该应用程序一直支持V2.1。我已经为阿拉伯语检测到两种不同的类型,而另一种(我没有识别该语言)将数字定位为问号。
我的问题是,是否会有类似的问题产生使用串联SQL查询,类似这样的语句:
String sql = "SELECT name from customers where cust_id=" + cust_id;
我的大部分的查询都是这样的,所以这将是一个很大的工作,检查并更改。我可以在当前版本上凭经验测试它,但以前和未来版本如何?
见http://stackoverflow.com/questions/9159358/implicit-铸的toString-的toString和-INT – Serg