Вертикальная черта (|) Замена Unicode

Мы используем символ вертикальной черты | (|) в качестве разделителя полей в одном из наших модулей. поэтому пользователи не должны использовать этот символ в заголовке.

Если они его используют, я хотел бы заменить его похожим персонажем.

Есть ли для него замена Unicode? Единственный символ, который я нашел и который похож на него, — это сломанная вертикальная черта ¦ (¦).


person ZigiZ    schedule 13.05.2012    source источник
comment
| — это Юникод. Как насчет того, чтобы вместо этого экранировать типизированные |?   -  person Matt Ball    schedule 13.05.2012
comment
@MattBall, я имел в виду замену Unicode для Ansi '|' char, как предложил Юозас Домаркас. Я не могу использовать для этого побег (в ограниченное время, которое у меня есть), но я знаю, что это должен был быть правильный путь.   -  person ZigiZ    schedule 13.05.2012
comment
Что вообще такое «Анси»? Звучит как очередной запутанный и бессмысленный обман Microsoft. Это не имеет никакого смысла. Пожалуйста, используйте стандартный язык, а не фирменный жаргон.   -  person tchrist    schedule 13.05.2012
comment
@tchrist Я думаю, вы имели в виду @ZigiZ, но в любом случае ANSI - это неправильное название из мира Windows, используемое в качестве синонима для Windows-1252.   -  person Matt Ball    schedule 13.05.2012
comment
@MattBall Да, я исправил бит @ ZigiZ, но ты слишком быстро рисуешь. :)   -  person tchrist    schedule 13.05.2012


Ответы (4)


Я не понимаю, что вам действительно нужно. Вам нужно изменить последовательность разделителей на что-то, что гарантированно не существует в наборе данных?

Если это так, то именно для этого специально разработаны 66 «несимвольных» кодовых точек Unicode. Вы можете использовать их в качестве внутренних индикаторов, зная, что они не могут встречаться в достоверных данных.

Если вы просто ищете визуального двойника, это совсем другое. Я бы не советовал этого, потому что есть много путаницы. Вот лишь некоторые из них:

U+0007C ‭ |  GC=Sm SC=Common       VERTICAL LINE
U+000A6 ‭ ¦  GC=So SC=Common       BROKEN BAR
U+002C8 ‭ ˈ  GC=Lm SC=Common       MODIFIER LETTER VERTICAL LINE
U+002CC ‭ ˌ  GC=Lm SC=Common       MODIFIER LETTER LOW VERTICAL LINE
U+02016 ‭ ‖  GC=Po SC=Common       DOUBLE VERTICAL LINE
U+023D0 ‭ ⏐  GC=So SC=Common       VERTICAL LINE EXTENSION
U+02758 ‭ ❘  GC=So SC=Common       LIGHT VERTICAL BAR
U+02759 ‭ ❙  GC=So SC=Common       MEDIUM VERTICAL BAR
U+0275A ‭ ❚  GC=So SC=Common       HEAVY VERTICAL BAR
U+02AF4 ‭ ⫴  GC=Sm SC=Common       TRIPLE VERTICAL BAR BINARY RELATION
U+02AF5 ‭ ⫵  GC=Sm SC=Common       TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE
U+02AFC ‭ ⫼  GC=Sm SC=Common       LARGE TRIPLE VERTICAL BAR OPERATOR
U+02AFE ‭ ⫾  GC=Sm SC=Common       WHITE VERTICAL BAR
U+02AFF ‭ ⫿  GC=Sm SC=Common       N-ARY WHITE VERTICAL BAR
U+0FF5C ‭ | GC=Sm SC=Common       FULLWIDTH VERTICAL LINE
U+0FFE4 ‭ ¦ GC=So SC=Common       FULLWIDTH BROKEN BAR
person tchrist    schedule 13.05.2012
comment
Я рассчитывал на визуальное сходство. Я не должен был упоминать разделитель в своем вопросе - мой плохой. (разделитель не используется ни в csv, ни в xml, ни в разделителе полей - это слишком сложно объяснить, поэтому я не буду...). но поскольку вы упомянули 66 несимвольных кодовых точек, было бы неплохо узнать, какой блок Unicode они содержат. - person ZigiZ; 13.05.2012
comment
@ZigiZ 66 несимвольных кодовых точек — это «32 между U+FDD0 и U+FDEF и 34 кодовых точки U+FFFE, U+FFFF, U+1FFFE, U+1FFFF, ... U+10FFFE, U+10FFFF. У некоторых людей ошибочное впечатление, что это незаконно, но это не так. Приложение или взаимодействующий набор приложений могут законно использовать их по своему усмотрению; но эти кодовые точки незаконны для открытого обмена». - person tchrist; 13.05.2012
comment
Я использую вкладку '\t' - person Marichyasana; 23.07.2019

В Юникоде есть 'светлая вертикальная черта': ❘, кодовая точка U+2758

person user1254893    schedule 13.05.2012
comment
Это хороший ответ, однако у шрифтов, которые поддерживают этот символ, есть большое ограничение :( Я пробовал (❘) в IE9, и он показывает уродливый квадрат. - person ZigiZ; 13.05.2012
comment
И именно поэтому, друг мой, мы используем escape-символы. - person user1254893; 13.05.2012
comment
U+2502, как правило, хорошо поддерживается. - person Hans Passant; 13.05.2012
comment
Поддержка шрифтов @ZigiZ не имеет значения. Здесь мы говорим о кодовых точках. Всегда и только играйте строго по цифрам и не увязайте в превратностях презентационных форм конечного пользователя. Графические интерфейсы не имеют отношения к кодовым точкам. - person tchrist; 13.05.2012

http://www.fileformat.info/info/unicode/char/007c/index.htm

Смотрите также:

  • латинская буква стоматологический щелчок U+01C0
  • пунктуация на иврите paseq U+05C0
  • делит U+2223
  • светлая вертикальная полоса U+2758
person Daniel    schedule 09.02.2017

В Unicode, а до него и в ASCII, есть символы, предназначенные для использования именно в вашей ситуации.

Есть символы, которые предназначены для использования в качестве:

  • Разделитель единиц измерения (): между полями записи или членами строки.
  • Разделители записей (): конец записи или строки

Примечание. Те символы, которые вы видите, являются визуальными представлениями:

  • U+241F — символ разделителя единиц измерения
  • : U+241E — символ разделителя записей

На самом деле вы не должны использовать эти символы (␟, ␞). Фактические символы восходят к дням ASCII:

Character         Symbol  ASCII  Unicode  Unicode name
----------------  ------  -----  -------  -------------------------
Unit separator        ␟  0x0F   U+001F   Information separator one
Record separator      ␞  0x1E   U+001E   Information separator two

К сожалению, фактические символы разделитель записей и разделитель единиц измерения не печатаются:

  • Разделитель полей: ?
  • Разделитель записей: ?

Вот почему хорошо, что для этих символов существуют символы:

  • Разделитель полей:
  • Разделитель записей:

И ничто не мешает вам использовать сами эти символы:

AUD␟Australian dollar␟0.923␞
BRL␟Brazilian real␟0.3443␞
CNY␟Chinese renminbi␟0.1926␞
EUR␟European euro␟1.5009␞
JPY␟Japanese yen␟0.01229␞
MXN␟Mexican peso␟0.06894␞
NOK␟Norwegian krone␟0.154␞
RUB␟Russian ruble␟0.02074␞
CHF␟Swiss franc␟1.3448␞
GBP␟UK pound sterling␟1.6844␞
VND␟Vietnamese dong␟0.000057␞

Я знаю, вы сказали, что хотите что-то визуально похожее. Но:

  • stackoverflow — это вики, куда мы добавляем полезную информацию
  • хорошо, когда есть точное решение для данной проблемы
person Ian Boyd    schedule 03.07.2019