Интересно об этом определенном много.
Connection con = DriverManager.getConnection(url, "***", "***");
try {
PreparedStatement pStmt = con.prepareStatement("your query here");
... // query the database and get the results
}
catch(ClassNotFoundException cnfe) {
// real exception handling goes here
}
catch(SQLException sqle) {
// real exception handling goes here
}
finally {
try {
con.close();
}
catch {
// What do you do here?
}
}
я никогда не знаю, что сделать в той последней выгоде в наконец блок. Я никогда не видел близко (), выдают исключение прежде, и настолько маловероятно, что я не волнуюсь об этом. Я просто регистрирую исключение и иду дальше.
C # (.NET) всегда будет использовать Unicode для строк. Это сделано намеренно.
Однако, когда вы читаете или записываете в свой файл, вы можете использовать StreamReader / StreamWriter, настроенный для принудительного кодирования ASCII, например:
StreamReader reader = new StreamReader (fileStream, new ASCIIEncoding());
Затем просто прочитайте с помощью StreamReader.
Запись - это то же самое, просто используйте StreamWriter.
Если вы хотите это в .NET , вы можете использовать F # для создания библиотеки, поддерживающей это. F # поддерживает строки ASCII с байтовым массивом в качестве базового типа, см. Literals (F #) (MSDN):
let asciiString = "This is a string"B
Внутренние строки в .NET всегда являются Unicode, но на самом деле это не должно вас интересовать. Если у вас есть определенный формат, которого вы должны придерживаться, значит, маршрут, по которому вы пошли (читая его как байты), был правильным. Вам просто нужно использовать System.Encoding.
Если у вас есть формат файла, который Смешивает текст в однобайтовых символах с двоичными значениями, такими как длины, управляющие символы, хорошая кодировка для использования ISKA Page 28591 AKA Latin1 AKA ISO-8859-1.
Вы можете получить это кодирование, используя то, что из следующего является наиболее читабельным:
Encoding.GetEncoding(28591)
Encoding.GetEncoding("Latin1")
Encoding.GetEncoding("ISO-8859-1")
это кодирование имеет полезную характеристику, что значения байтов до 255 преобразуются для без изменений в символ Unicode с тем же значением (например, BYTE 0x80 становится символом 0x0080).
В вашем сценарии это может быть более полезно, чем кодировка ASCII (который преобразует значения в диапазоне 0x80 до 0xFF, чтобы «?») Или любой другой обычные кодировки, которые также будут преобразовывать некоторые символы в этом диапазоне Отказ