Одиночная кавычка заменяется на две одинарные кавычки автоматически в Java при создании имени файла - PullRequest
0 голосов
/ 12 марта 2012

Я сталкиваюсь со странной проблемой при создании файла в Java с помощью MYSQL.

Мой код:

String lChildSql = this.lSQLBucket.select("get.child.by.name")
                        .replace("LEFT").with(lLeft)
                        .replace("RIGHT").with(lRight)
                        .replace("LEVEL").with(lLevel + 1)
                        .replace("NAME").with(pName).get()
                    ResultSet lChildRs = lDB.Qry(lChildSql);

Пример: если я создаю файл с pName raj'sek'har и он автоматически создается как raj "sek" har.

, пожалуйста, помогите мне решить эту проблему.

С уважением,

Raj

1 Ответ

1 голос
/ 13 марта 2012

пользователь неизвестно говорит, что это нормальное поведение. это то, как sql имеет дело с одинарной кавычкой (апострофом) внутри слова.

sql использует одинарные кавычки для строк - 'this is a string' - но если ваша строка содержит одинарную кавычку, это вызовет проблемы - 'this isn't going to work' - потому что строка "заканчивается рано".

так что sql делает то, что заменяет это двумя одиночными апострофами, что является «escape-последовательностью», указывающей, что на самом деле требуется единственный одиночный апостроф [sic]: 'this''ll work fine'.

обратите внимание, что это только для отображения. это не «настоящая» замена чего-либо, и когда вы получите данные, все будет хорошо.

кто-то еще говорит то же самое

...