Это не может быть прекрасно (акцент, добавленный начиная с людей, пропускающих эту правовую оговорку), но что я сделал, в этом случае ниже. Можно корректироваться к использованию с потоком.
/// <summary>
/// Removes control characters and other non-UTF-8 characters
/// </summary>
/// <param name="inString">The string to process</param>
/// <returns>A string with no control characters or entities above 0x00FD</returns>
public static string RemoveTroublesomeCharacters(string inString)
{
if (inString == null) return null;
StringBuilder newString = new StringBuilder();
char ch;
for (int i = 0; i < inString.Length; i++)
{
ch = inString[i];
// remove any characters outside the valid UTF-8 range as well as all control characters
// except tabs and new lines
//if ((ch < 0x00FD && ch > 0x001F) || ch == '\t' || ch == '\n' || ch == '\r')
//if using .NET version prior to 4, use above logic
if (XmlConvert.IsXmlChar(ch)) //this method is new in .NET 4
{
newString.Append(ch);
}
}
return newString.ToString();
}
Невозможно легко импортировать JAR-файлы, реализующие классы java. *
. Кроме того, JDBC необходимо будет перенести на Android, поскольку он, вероятно, полагается на классы в JavaSE, которых нет в Android. И вам в любом случае нужно будет написать свой собственный драйвер JDBC для SQLite, обернув API, который уже предоставляет Android, поскольку я подозреваю, что существующий драйвер JDBC использует JNI. И когда все это будет сделано, у вас будет приложение, которое добавляет много лишнего, что снижает вероятность того, что люди загрузят и сохранят ваше приложение.
Короче говоря, я бы не пошел по этому пути.
Существует (недокументированный?) Драйвер JDBC для базы данных Android SQLite. Попробуй это: (из http://groups.google.com/group/android-developers/browse_thread/thread/cf3dea94d2f6243c )
try {
String db = "jdbc:sqlite:" + getFilesDir() + "/test.db";
Class.forName("SQLite.JDBCDriver");
Connection conn = DriverManager.getConnection(db);
Statement stat = conn.createStatement();
stat.executeUpdate("create table primes (number int);");
stat.executeUpdate("insert into primes values (2);");
stat.executeUpdate("insert into primes values (3);");
stat.executeUpdate("insert into primes values (5);");
stat.executeUpdate("insert into primes values (7);");
ResultSet rs = stat.executeQuery("select * from primes");
boolean b = rs.first();
while (b) {
Log.d("JDBC", "Prime=" + rs.getInt(1));
b = rs.next();
}
conn.close();
} catch (Exception e) {
Log.e("JDBC", "Error", e);
}
драйвер JDBC недокументирован и не поддерживается. пожалуйста, не используйте этот код.
избегайте java.sql и используйте вместо него android.database.sqlite.