Короткий ответ не. Выясните формат данных и посмотрите, что вы можете сделать, чтобы сделать манипуляции. Если данные составляют на самом деле текст, только что сохраненный как byte[]
, ваш подход будет работать, если вы правильно закодируете строку (т. Е. Если ваш БД ожидает UTF-8, используйте кодировку UTF-8, если это windows-1251, используйте эту).
Если у вас есть структура, в которой часть ее является строкой, то то, что вы делаете, не может действительно хорошо работать. Во-первых, вы, вероятно, захотите изменить только соответствующие части поля. В MS SQL у вас есть удобные функции для этого. Но даже тогда вы должны знать, что на самом деле хранилось там, а не просто предположить, что замена строки будет волшебным образом работать.
Теперь взломом может быть использование явного кодирования, которое не перерывает нестроковые данные. Это будет некоторая однобайтовая кодировка, которая не делает ничего интересного. Это нормально, если вы используете одну и ту же кодировку при чтении текстовых данных, однако, если вы используете какой-либо вариант юникода, вам не повезло; из-за таких функций, как нормализация строк, вы не можете гарантировать, что то, что приходит, выходит одинаково, по-байту. В любом случае, это плохая практика.
Не забывайте, что вполне возможно, что строка, которую вы ищете, на самом деле находится где-то за пределами текстовых полей - даже по чистой случайности это может произойти, и некоторые практики делают это еще более вероятным.
Опять же: укажите формат данных внутри этого поля данных - тогда вы можете решить, как делать то, что хотите.
как вы его преобразовали? покажите свой код! – zey
Каковы исходные данные? HTML? PDF? слово? или...? В основном: как именно вы получили его как 'byte []'. Как правило, процесс здесь - «десериализовать его обратно в формат orignal, манипулировать данными в исходном формате, снова сериализовать его в байт []» –
Меня поражает, что кто-то, кто нуждается в ответе, не затрагивает фундаментальные вопросы в комментариях ... –