1. Куча / Говнокод #16826

    +140

    1. 1
    (𝓹𝓻𝓲𝓷𝓽 "𝓗𝓮𝓵𝓵𝓸, 𝓦𝓸𝓻𝓵𝓭!")

    В продолжение темы юникода. К сожалению, крестокомпилятор не захотел кушать эти символы, а в других языках нет препроцессора. Поэтому пришлось на лиспе.

    http://ideone.com/14yidz

    Запостил: bormand, 08 Октября 2014

    Комментарии (54) RSS

    • Feel the power of CL: http://ideone.com/OOgEQp
      Ответить
      • http://pastebin.com/496ABfk9
        Узнал для себя что-то новое: оказывается (iter (for var :in-stream stream)) закрывает поток, что делает макро не на столько полезным, как хотелось бы. :(
        Ответить
        • > (read-from-string (read-handwritten-token stream))
          А у меня вот так не проканывало - clisp сказал, что read macro должен возвращать ровно одно значение. Из-за этого тот дурацкий let x пришлось добавить.
          Ответить
          • Вообще-то, да, в описании ридера сказано, что должен возвращать одно или ни одного значения. Но, на мой взгляд, ограничение это бессмысленное. Т.е. понятно, что будет использоваться всего одно значение. Но в таком случае традиционно использовать values, или nth-value.
            Ответить
        • О! Можно заодно строковые литералы в „курсивные кавычки“ засовывать? ;)
          Ответить
          • Да хоть в «ёлочки» :)

            P.S. Где-то попадался пример, где на read macro мутили синтаксис json.
            Ответить
          • Конкретно с этим кодом? - Нет, но вообще можно сделать. Только мне лень. Для примера, можно посмотреть cl-sql, там так сделано для [].
            Ответить
    • вот для чего нужен был юникод.....
      Ответить
    • Что-то пошло не так http://i58.tinypic.com/ayms9j.jpg
      Ответить
      • у меня на селероне тоже такие буквы не рисуются
        Ответить
      • Ну либо браузер либо щревты. Хрен знает.
        Ответить
        • Либо на селероне строковые функции MOVSD/LODSD/STOSD фильтруют коды символов, находящихся за пределами Basic Multilingual Plane.
          Ответить
      • >Что-то пошло не так
        Хром(ИЕ)+Винды? Там рендеринг уникода нативный, то есть по дефолту уёбищный.
        Проще всего юзать ФФ.
        Ответить
        • Скорее всего, дело в шрифтах, потому что даже в описанных комбинациях всё работает (разве что в ИЕ код не раскрашивается).
          Ответить
        • Хром(ИЕ)+Винды? Хром+Винды?
          Проще всего юзать ФФ. Проще всего юзать ФФ(ИЕ).
          (справедливо для меня)
          Ответить
          • То есть в ишаке нормально показывает? В каком?
            А это я так по незнанию сказал - думал он тоже юзает нативную отрисовку ОС.

            У меня есть еще другой хинт, для любителей хрома:
            http://img.animeblog.ru/data/79832/873/faq_jgames_3.gif
            Вон ту галку надо взвести
            Ответить
            • > В каком?
              В 11м.

              > для любителей хрома
              Долго искал, куда перенесли эту галочку, в итоге решил, что её теперь нет и нагуглил:
              [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\SystemShared] 
              "CUAS"=dword:00000001
              Ответить
              • Только там не просто реестр, иногда оно с установочного диска шрифты и прочую херь доставляет. И ребут конечно.
                Так что помогло?
                Ответить
                • Жаль было перезагружаться. Были квадратики, как показывал absolut. Стали квадратики с вопросиками.

                  > иногда оно с установочного диска шрифты и прочую херь доставляет
                  Это ещё надо как-то повлиять? Хотя, если в IE работает, то Windows не виновата и всё нужное имеет.
                  Ответить
                  • Короче помню оно у меня диск просило.
                    >то Windows не виновата и всё нужное имеет.
                    Там написано "Поддержка служб для всех программ."
                    Ответить
                    • В особенности для ANSI'шных, которые юникода отродясь не видели...
                      Ответить
                      • Чёто я всегда вспоминаю корпорацию с именем похожим на чей-то ник.
                        Ответить
                    • > Там
                      В том и дело, что там и тогда.
                      Ответить
              • Вспомнил, что ещё нужно сделать:
                [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\LanguagePack]
                "SURROGATE"=dword:00000002
                
                [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\LanguagePack\SurrogateFallback]
                "Plane1"="Code2001"
                "Plane2"="Code2002"
                "Plane15"="Code2001"
                
                [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\Scripts\42]
                "IEPropFontName"="Code2001"


                Отсюда: https://en.wikipedia.org/wiki/Talk:Code2000/Archive1
                Или отсюда: http://www.i18nguy.com/surrogates.html

                Вместо Code2001 и Code2002 можно брать Universalia (там два шрифта: для плоскостей 1 и 2), Нan Nom, MingLiu, SimSun (в каких-то из них не все символы).

                Полезный материал: http://magazeta.com/2011/02/universalia-font/
                Ответить
                • Вот ещё: http://winvnkey.sourceforge.net/webhelp/surrogate_fonts.htm
                  Ответить
                  • Если бы ты не вытаскивал из своей жопы радиолампы, которыми массируешь себе простату, ты бы скоро превратился в радиоприёмник.
                    Ответить
              • Так и не понял, для чего нужен этот CUAS. У меня с CUAS=1 игнорируется ключ
                [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont]

                Так что при CUAS=1 я не могу сменить шрифт в сосноли.
                Ответить
              • А в браузерах на Gecko, оказывается, помогает параметр
                gfx.font_rendering.fallback.always_use_cmaps
                Если его не установить в true, то браузер не может подобрать подходящий шрифт для некоторых символов.
                Ответить
    • Как ты это сделал?
      Ответить
      • g: CursiveTextGenerator
        Ответить
        • 𝓱𝓮𝓵𝓵𝓸, 𝓰𝓸𝓼𝓽
          𝓱𝓮𝓵𝓵𝓸, 𝓰𝓸𝓼𝓽
          𝓱𝓮𝓵𝓵𝓸, 𝓰𝓸𝓼𝓽
          𝓱𝓮𝓵𝓵𝓸, 𝓰𝓸𝓼𝓽
          𝓱𝓮𝓵𝓵𝓸, 𝓰𝓸𝓼𝓽
          Ответить
          • Не во всех браузерах отображается, бтв
            Ответить
            • 𝓯𝓸𝓸𝓸𝓸𝓸𝓸𝓸𝓸𝓸 𝓸𝓸𝓸𝓸𝓸𝓸𝓸𝓸𝓴𝔂 𝓮𝓮𝓮𝓮𝓮𝓮𝓮𝓮𝓮𝓪 𝓱
              Ответить
              • О, боже, почему при смене хостера юникодные символы превратились в ð“?
                Ответить
                • Похоже, потому же, почему при попытке отправить комментарий с некоторыми юникодными символами (>0xFFFF) вылезает «Application was halted by an exception» — проёбана кодировка в БД.
                  Ответить
      • охни
        Ответить
        • показать все, что скрытоvanished
          Ответить
        • Могут блатные трахнуть, придравшись к словам. В этой зоне, кстати, в бане мылись двумя мочалками: одна — до пояса, другая — ниже. Нельзя ошибиться и назвать вафельное полотенце — «вафельным» («вафел» — делает минет). Надо говорить: «полотенце в клеточку».
          Ответить

    Добавить комментарий