2013-08-02 3 views
-2

Я хотел бы создать функцию левого пэда на языке программирования. Функция накладывает строку с ведущими символами на указанную общую длину. Строки кодируются UTF-16 на этом языке.Как заполнить строку Unicode определенной видимой длиной?

Есть в Unicode несколько вещей, которые делают его сложным:

  • Суррогаты: 2 суррогатных символов = 1 юникод символов
  • Комбинирование символов: 1 без сочетания символов + любое количество объединение символов = 1 видимый символ
  • Невидимые символы: 1 невидимый символ = 0 видимых символов

Какие еще факторы должны быть приняты во внимание и как они будут рассматриваться?

+4

-1 для наряда, это очень неконструктивно. Персонажи и системы написания * * сложны.Попытка иметь дело со всеми системами написания всего мира * без * Юникода будет еще больше головной боли. И даже у ASCII есть невидимые персонажи, которые дают достаточное количество головных болей программистов, которые * не понимают их *. – deceze

+0

Я думаю, что Unicode только похвалил, потому что нет лучшего стандарта. – simplesoft55

+1

Возможно, да, но если вы не предложите лучший стандарт, который касается всех систем написания всего мира и всех их маленьких проблем, и на самом деле придумать что-то, что лучше, чем Unicode: просто с этим справитесь. – deceze

ответ

1

Когда вы впервые начинаете пытаться понять что-то, это действительно расстраивает. Мы все были там. Но в то время как это очень легко назвать его глупым, и все, кто сделал это глупо, вы не будете очень далеко делать это. С таким отношением вы подразумеваете, что люди, которые это понимают, также глупы, чтобы тратить свое время на что-то настолько явно глупое. После вызова людей, которые понимают это глупо, крайне маловероятно, что любой, кто это понимает, будет тратить время, чтобы объяснить это вам.

Я понимаю разочарование. Unicode действительно сложный, и это было огромной болью для меня, прежде чем я понял это, и это все еще боль для многих вещей, с которыми у меня нет опыта. Но причина, по которой это так сложно, заключается не в том, что люди, которые это сделали, были глупы и пытались разрушить вашу жизнь. Это сложно, потому что он пытается обеспечить стандартный способ представления каждой человеческой системы письма, когда-либо использованной. Системы написания безумно сложны, и на протяжении всей истории разработка новой и другой письменной системы была довольно стандартной частью идентификации себя как другой культуры от людей через реку или через следующий горный хребет. Вы сами начинаете, указывая себя на венгерский язык на основе языка, на котором вы говорите. Однажды пробовав произнести имя венгерского профессора, я знаю, что венгерский язык очень сложный по сравнению с английским, так же, как английский очень сложный по сравнению с венгерским. Как бы вы себя чувствовали, если бы у меня были проблемы с венгром и спросили вас: «Мальчик, венгерский, конечно, глупый язык! Он, должно быть, был разработан идиотами! Кстати, как я произношу это слово? »

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

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

Я нашел Unicode Demysitifed, чтобы быть отличной книгой, а новая книга Unicode Explained имеет еще более высокие оценки на амазонке.

+0

Мне нравятся естественные языки, потому что они приятные и уникальные. Но они не были созданы. Они эволюционировали. Это большая разница. Проблема с Unicode заключается в том, что она была создана, поэтому она может быть простой. Но это не так. Несколько проблем: – simplesoft55

+0

Извините, что мой последний комментарий отсутствует. – simplesoft55

+0

Извините, снова. :) Итак, несколько проблем с Unicode: я понимаю, что системы записи сложны, но нам действительно нужно комбинировать символы, например? Хорошо, возможно очень-очень-очень редко нам нужна латинская буква + острая комбинация, которая не используется ни на одном естественном языке. Но я думаю, что это так редко, что Unicode не должен поддерживать это. Есть и другие способы справиться с этим. Жизнь пользователей и программистов будет намного проще. И для них создан стандарт Unicode. И стандарты должны облегчить нашу жизнь, не так ли? – simplesoft55

Смежные вопросы