#c# #.net #character
#c# #.net #символ
Вопрос:
У меня есть приложение на C #, в котором я пытаюсь создать строку, которая будет содержать около конца . Мне не удалось этого сделать.
Я сделал:
string msg = "GGGG..8";
byte []b = System.Text.encoding.GetBytes(msg);
но в b, где «..» — это представление, равно 46, а не 00.
Я хочу, чтобы вместо ..
Конечная цель состояла в том, чтобы строка содержала сообщение.
Комментарии:
1. Ваш код не будет компилироваться как «System.Text.encoding. getBytes(msg)» недопустимо. Какую кодировку вы используете?
Ответ №1:
Создать соответствующую строку очень просто:
string msg = "GGGG8";
Неясно, какую кодировку вы пытались использовать во второй строке, но я бы ожидал, что большинство однобайтовых кодировок будут кодировать это ‘ 0’ как 0 байт.
Если вы хотите взять сообщение, которое изначально содержит точки, и преобразовать их в символы ‘ 0’, это тоже просто:
string msg = "GGGG..8";
string replaced = msg.Replace('.', '');
Комментарии:
1. Спасибо, я так плох в этом вопросе символов и преобразования и ascii. Знаете ли вы хорошую ссылку, чтобы понять это?
2. Неясно, что именно вас интересует. Моя статья о строках может помочь: csharpindepth.com/Articles/General/Strings.aspx
3. Спасибо за статью, я улучшаю при использовании unicode при преобразовании? когда он представлен в UTF7 или 8 и т.д..
4. @RomanDorevich: Что вы подразумеваете под «преобразованием»? точно? Это сложно — вам нужно быть более точным в своей терминологии, прежде чем я смогу точно ответить на ваши вопросы, но пока вы не разберетесь в предмете немного лучше, вы не сможете быть более точным в своей терминологии… надеюсь, моя статья немного прояснит ситуацию.
5. @jon я прочитал вашу статью, но
string s="1"
также хранится в виде 16 бит unicode? 8 бит подходит для этого случая…. вы сказали, что у него есть флаг, который может определить, содержит ли строка символы, отличные от ascii … ну… это не тот случай, когда его символ ascii. какого размера он будет в памяти? (байты)
Ответ №2:
Это должно сработать:
string msg = "GGGG..8";
Если не повезло, попробуйте это:
string msg = "GGGG..8" '';
Комментарии:
1. Извините, я хотел вместо ..
2. Я думаю, что «в конце» в данном случае означает «в конечном итоге», а не «в конце строки».
3. Да, но я также написал, что он дублируется и сделал пример, но я его изменю
4. Хороший улов @Jon и, как обычно, ваш ответ не может быть превзойден. 🙂