UTF-8 string вставить в БД
От: corpse56  
Дата: 26.02.19 17:40
Оценка:
Здравствуйте!
Возможно глаза где-то замылил, но упёрся и дальше ни с места. Всё необходимое по теме прочитал и похожие вопросы поизучал. Но сделать так и не смог. Использую c# и ms sql 2008
Собственно сам вопрос.
В ходе некоторых манипуляций получаю строку вот с таким содержимым:
string hash = "\u008b\u007f\u008a\u0087\u0093"

Здесь 5 символов. В байтовом представлении получается 9 байт (второй символ = 127, что означает, что он будет занимать 1 байт).
дальше нужно вставить строку в столбец с типом NVarChar.

command.Parameters.Add("hash", SqlDbType.NVarChar);
command.Parameters["hash"].Value = hash;


Но вставляется

‹Š‡“


вместо

‹Љ‡“


(второй символ непечатный) То есть перед каждым символом у которого двухбайтное представление, вставляется дополнительно В. Мне не нужно чтобы он вставлялся.

В таблице есть строка, которую мне надо вставить. Я её считываю и её содержимое равно

‹\u007fЉ‡“

Это то, что мне нужно вставить


Как мне вставить то, что хочется из строки hash?

Есть байтовое представление это строки. Пробовал
byte[] bytes;
...
hash = Encoding.UTF8.GetString(bytes);

строка остаётся той же...


Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.