Специальные символы широты и долготы в Erlang/Mnesia
Попытка изменить некоторые специальные символы в Erlang (оболочка на данный момент), особенно градусы, минуты и секунды, используемые в широте / долготе.
Я прочитал все о модуле unicode и поэкспериментировал с функциями x_to_y, и, похоже, не могу заставить I°J'K ″ N X ° Y'Z ″ W соответствующим образом отображаться в оболочке. Стоит отметить, что я извлекаю эти значения из HTTP-запроса, сохраняю их в базе данных Mnesia и хочу отправить их обратно в ответ.
Мне все равно, если я заставлю их выглядеть красиво в оболочке, если я смогу разобраться в них позже, в разных контекстах (например, на веб-странице).
Вопрос сводится к следующему: как я узнаю, что Эрланг получает правильные символы, и есть ли способ подтвердить, что список целых чисел позже будет преобразован в правильную форму?
Хотя мне нужно добиться вышеизложенного, будет ли общая рекомендация преобразовывать координаты в десятичные и сохранять их таким образом?
1 ответ
Эффективным способом хранения таких значений является использование кортежа {D,M,S}, если вам придется повторно использовать значение, это позволит избежать неожиданных проблем с округлением. Десятичное значение стоит, если вам нужно только сделать вычисления с информацией.
Можно проверить, что вы получили правильное значение, используя красивый формат печати "~p"
напрямую печатать кортеж. Обратите внимание, что, когда это возможно, лучше использовать сопоставление с образцом для теста, чем полагаться на вывод оболочки. Оболочка действительно хороша для быстрой оценки, но она вводит некоторые различия по сравнению с выполнением в модулях (использование симпатичной печати по умолчанию, нет реального назначения переменных, различная обработка анонимных функций, особенно при обмене между узлами...)