Обнаружение региональных настроек (Разделитель элементов списка) от сети

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

ПРИМЕЧАНИЕ. MD5 не рекомендуется для хэширования паролей, поскольку он криптографически слаб. Существуют более подходящие криптографические хеши, такие как bcrypt . Однако исторически оно использовалось для этой цели.

6
задан Toms Mikoss 18 June 2009 в 09:07
поделиться

4 ответа

Вот решение JavaScript, которое я только что написал на основе метода, показанного здесь :

function getListSeparator() {
    var list = ['a', 'b'], str;
    if (list.toLocaleString) {
        str = list.toLocaleString();
        if (str.indexOf(';') > 0 && str.indexOf(',') == -1) {
            return ';';
        }
    }
    return ',';
}

Ключ находится в методе toLocaleString (), который использует разделитель системного списка.

Вы можете использовать JavaScript, чтобы получить разделитель списка и установить его в cookie, который затем можно будет обнаружить со своего сервера.

Я проверил все локали Windows, и мне кажется, что разделителем списка по умолчанию практически всегда является ',' или ';'. Для некоторых языков раскрывающийся список на Панели управления предлагает оба варианта; для других он предлагает просто ','. Один языковой стандарт, Дивехи, имеет странный символ, который я раньше не видел в качестве разделителя списка, и для любого языкового стандарта пользователь может ввести любую строку, которую он хочет, в качестве разделителя списка.

Использование случайных строк в качестве разделителя в CSV-файле звучит для меня как проблема, поэтому моя функция выше будет возвращать только либо ';' или '.', и он вернет только ';' если он не может найти ',' в строке Array.toLocaleString. Я не совсем уверен, имеет ли array.toLocaleString формат, который гарантирован для всех браузеров, поэтому indexOf проверяет, а не выбирает символ по определенному индексу.

Использование Array.toLocaleString для получения разделителя списка работает в IE6, IE7 и IE8, но, к сожалению, похоже, что он не работает в Firefox, Safari, Opera и Chrome (или, по крайней мере, в версиях этих браузеров на моем компьютер): кажется, что все они разделяют элементы массива запятой, независимо от настройки Windows «разделитель списков».

Также стоит отметить, что по умолчанию Excel, кажется, использует системный «десятичный разделитель» при анализе чисел из файлов CSV. Юк. Итак, если вы локализуете разделитель списка, вы можете также локализовать десятичный разделитель.

8
ответ дан 10 December 2019 в 02:52
поделиться

Я думаю каждый должен использовать Calc из OpenOffice - он спрашивает при открытии файла о кодировке, разделителях столбцов и прочем. Я не знаю ответа на ваш вопрос, но, возможно, вы можете попытаться отправить данные в таблицах html или в xml - excel должен правильно их прочитать. По моему опыту, экспортировать данные в Excel непросто. Несколько недель назад у меня возникла проблема, и после нескольких часов работы я спросил человека, который не смог открыть мой CSV-файл в Excel, о версии. Это был Excel 98 ...

1
ответ дан 10 December 2019 в 02:52
поделиться

Не могли бы вы просто попросить пользователей с разделителями без запятой установить параметр типа профиля а затем сгенерировать CSV на основе пользовательских настроек с запятыми по умолчанию?

0
ответ дан 10 December 2019 в 02:52
поделиться

Томс, насколько мне известно, невозможно достичь того, что вам нужно. Максимум, что вы можете сделать, это попытаться определить языковой стандарт пользователя и сопоставить его с базой данных языковых стандартов / разделителей списков, в результате изменив разделитель списка в файле .CSV.

Я осознаю, что невозможно достичь того, что вам нужно. Максимум, что вы можете сделать, это попытаться определить языковой стандарт пользователя и сопоставить его с базой данных языковых стандартов / разделителей списков, в результате изменив разделитель списка в файле .CSV.

Я осознаю, что невозможно достичь того, что вам нужно. Максимум, что вы можете сделать, это попытаться определить языковой стандарт пользователя и сопоставить его с базой данных языковых стандартов / разделителей списков, в результате изменив разделитель списка в файле .CSV.

0
ответ дан 10 December 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: