Самый простой способ получить полный список всех пробельных символов UTF-8 в PHP - PullRequest
12 голосов
/ 09 февраля 2010

В PHP, какой самый элегантный способ получить полный список (массив строк) из всех символов Unicode пробел , закодированный в utf8?

Мне это нужно для генерации тестовых данных.

Ответы [ 4 ]

12 голосов
/ 09 февраля 2010

Это электронное письмо содержит список всех символов пробела Unicode, закодированных в UTF-8, UTF-16 и HTML.

редактировать

Первоначально ответил 9 февраля '10 (!). Действительно, ребята, если информация устарела, вы можете добавить свой ответ, а не жаловаться. Просто поищите в Google URL, указанный в моем ответе, и заработайте немного репутации:

почта была заархивирована здесь (заняло у меня несколько секунд), а таблица пробелов упоминается даже во введении

static $whitespace = array(
    "SPACE" => "\x20",
    "NO-BREAK SPACE" => "\xc2\xa0",
    "OGHAM SPACE MARK" => "\xe1\x9a\x80",
    "EN QUAD" => "\xe2\x80\x80",
    "EM QUAD" => "\xe2\x80\x81",
    "EN SPACE" => "\xe2\x80\x82",
    "EM SPACE" => "\xe2\x80\x83",
    "THREE-PER-EM SPACE" => "\xe2\x80\x84",
    "FOUR-PER-EM SPACE" => "\xe2\x80\x85",
    "SIX-PER-EM SPACE" => "\xe2\x80\x86",
    "FIGURE SPACE" => "\xe2\x80\x87",
    "PUNCTUATION SPACE" => "\xe2\x80\x88",
    "THIN SPACE" => "\xe2\x80\x89",
    "HAIR SPACE" => "\xe2\x80\x8a",
    "ZERO WIDTH SPACE" => "\xe2\x80\x8b",
    "NARROW NO-BREAK SPACE" => "\xe2\x80\xaf",
    "MEDIUM MATHEMATICAL SPACE" => "\xe2\x81\x9f",
    "IDEOGRAPHIC SPACE" => "\xe3\x80\x80",
);
8 голосов
/ 09 октября 2017

Спустя годы этот вопрос все еще имеет лучшие результаты в Google при поиске символов пробела в Юникоде. Ответ Девио отличный, но неполный. На момент написания статьи (октябрь 2017 г.) Википедия имеет список пробельных символов здесь: https://en.wikipedia.org/wiki/Whitespace_character

Этот список содержит 25 кодовых точек, в то время как в настоящее время списки принятых ответов 18. Включая семь других кодовых точек, список:

U+0009  character tabulation
U+000A  line feed
U+000B  line tabulation
U+000C  form feed
U+000D  carriage return
U+0020  space
U+0085  next line
U+00A0  no-break space
U+1680  ogham space mark
U+180E  mongolian vowel separator
U+2000  en quad
U+2001  em quad
U+2002  en space
U+2003  em space
U+2004  three-per-em space
U+2005  four-per-em space
U+2006  six-per-em space
U+2007  figure space
U+2008  punctuation space
U+2009  thin space
U+200A  hair space
U+200B  zero width space
U+200C  zero width non-joiner
U+200D  zero width joiner
U+2028  line separator
U+2029  paragraph separator
U+202F  narrow no-break space
U+205F  medium mathematical space
U+2060  word joiner
U+3000  ideographic space
U+FEFF  zero width non-breaking space
3 голосов
/ 18 декабря 2013

http://en.wikipedia.org/wiki/Space_%28punctuation%29#Spaces_in_Unicode

К сожалению, он не дает UTF-8, но у него есть символ на веб-странице, так что вы можете вырезать и вставить в ваш редактор (если он сохраняется в UTF-8). В качестве альтернативы, http://www.fileformat.info/info/unicode/char/180E/index.htm дает UTF-8 (замените «180E» на шестнадцатеричное значение UTF-16, которое вы ищете).

Это также дает пару дополнительных символов, которые превосходный ответ @ devio пропускает.

0 голосов
/ 09 июня 2018
0x9 b'\t'
0xa b'\n'
0xb b'\x0b'
0xc b'\x0c'
0xd b'\r'
0x20 b' '
0x85 b'\xc2\x85'
0xa0 b'\xc2\xa0'
0x1680 b'\xe1\x9a\x80'
0x180e b'\xe1\xa0\x8e'
0x2000 b'\xe2\x80\x80'
0x2001 b'\xe2\x80\x81'
0x2002 b'\xe2\x80\x82'
0x2003 b'\xe2\x80\x83'
0x2004 b'\xe2\x80\x84'
0x2005 b'\xe2\x80\x85'
0x2006 b'\xe2\x80\x86'
0x2007 b'\xe2\x80\x87'
0x2008 b'\xe2\x80\x88'
0x2009 b'\xe2\x80\x89'
0x200a b'\xe2\x80\x8a'
0x200b b'\xe2\x80\x8b'
0x200c b'\xe2\x80\x8c'
0x200d b'\xe2\x80\x8d'
0x2028 b'\xe2\x80\xa8'
0x2029 b'\xe2\x80\xa9'
0x202f b'\xe2\x80\xaf'
0x205f b'\xe2\x81\x9f'
0x2060 b'\xe2\x81\xa0'
0x3000 b'\xe3\x80\x80'
0xfeff b'\xef\xbb\xbf'
...