Вопрос

Как я могу вставить специальные символы ASCII (например,со значением ASCII 0x01) в строку?

Я спрашиваю, потому что я использую следующее:

str.Replace( "<TAG1>", Convert.ToChar(0x01).ToString() );

и я чувствую, что должен быть лучший способ, чем этот.Есть идеи?

Обновлять:

Также, если я использую эту методологию, нужно ли мне беспокоиться о конфликте unicode и ASCII?

Это было полезно?

Решение

Я верю, что ты можешь использовать \uXXXX для вставки указанных кодов в вашу строку.

Расчетное время прибытия:Я только что проверил это, и это работает.:-)

using System;
class Uxxxx {
    public static void Main() {
        Console.WriteLine("\u20AC");
    }
}

Другие советы

Также, если я использую эту методологию, нужно ли мне беспокоиться о конфликте unicode и ASCII?

Вашей первой проблемой будет конфликт тегов с ASCII.Как только вы доберетесь до TAG10, вы столкнетесь с 0x0A:перевод строки.Если вы гарантируете, что никогда не получите более девяти тегов, вы можете быть в безопасности.Unicode-кодировка (вернее:UTF8) идентична кодировке ASCII, когда значения байтов находятся в диапазоне от 0 до 127.Они различаются только тогда, когда установлен верхний бит.

И я чувствую, что должен быть лучший путь, чем этот.Есть идеи?

Выглядит так, будто ты пытаешься манипулировать двоичным фрагментом с помощью текстовых инструментов.Если вы хотите вставить байт 0x01, например, вы больше не манипулируете текстом, поскольку вас не волнует, что это за байт мощь представляют, и поскольку похоже, что вам даже не важно, какую кодировку вы будете выводить.

Лучшим способом было бы рассматривать объект, которым вы манипулируете, как двоичный фрагмент данных, что позволило бы вам легко вставлять биты и байты, не используя хрупкие обходные пути и не беспокоясь о побочных эффектах.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top