Я бы включил поиск изображений (и поиск погоды) в другую функцию, как показано ниже, тогда вы в порядке!
Я разветвил другой кодовый блок: обновил пример
function loadDestinationImage() {
var destination = ($("#getIt").val());
var flickerAPI = "https://api.flickr.com/services/feeds/photos_public.gne?format=json&tags=" + destination;
$.ajax({
url: flickerAPI,
dataType: "jsonp", // jsonp
jsonpCallback: 'jsonFlickrFeed', // add this property
success: function (result, status, xhr) {
$(".FlickResponse").html("");
$.each(result.items, function (i, item) {
$("").attr("src", item.media.m).addClass("oneSizeFitsAll").appendTo(".FlickResponse");
if (i === 1) {
return false;
}
});
},
error: function (xhr, status, error) {
console.log(xhr)
$(".FlickResponse").html("Result: " + status + " " + error + " " + xhr.status + " " + xhr.statusText)
}
});
}
Я бы сделал то же самое с погодой:
function loadWeather() {
var destination = ($("#getIt").val());
$.post("https://api.openweathermap.org/data/2.5/weather?q=" +
destination +
"&units=metric&appid=15c9456e587b8b790a9092494bdec5ff",
function (result, status, xhr) {
var APIresponded = result["main"]["temp"];
var APIweather = result["weather"][0]["description"];
var sunGoing = result["sys"]["sunset"];
var output = destination.capitalize();
var humidValue = result["main"]["humidity"];
var windy = result["wind"]["speed"];
var windDirection = result["wind"]["deg"];
if (windDirection <= 90) {
windDirection = "southwest"
}
if (windDirection <= 180) {
windDirection = "northwest"
}
if (windDirection <= 270) {
windDirection = "northeast"
}
if (windDirection <= 360) {
windDirection = "southeast"
}
if (APIweather.includes("snow")) {
$('#displaySky').addClass('far fa-snowflake');
}
if (APIweather.includes("rain")) {
$('#displaySky').addClass('fas fa-cloud-rain');
}
if (APIweather.includes("overcast")) {
$('#displaySky').addClass('fas fa-smog');
}
if (APIweather.includes("sun") || APIweather.includes("clear")) {
$('#displaySky').addClass('fas fa-sun');
}
if (APIweather.includes("scattered")) {
$('#displaySky').addClass('fas fa-cloud-sun');
}
$("#message").html("The temperature in " + output + " is : " + APIresponded + " degrees. The sky looks like this: ");
$(".apiHumidity").text(humidValue + " %");
$('.apiWind').html(windy + 'km per hour. The wind direction is ' + windDirection);
console.log(APIweather);
}
).fail(function (xhr, status, error) {
alert("Result: " + status + " " + error + " " +
xhr.status + " " + xhr.statusText);
});
}
И вызов из функции отправки:
$("#submit").click(function (e) {
loadDestinationImage();
loadWeather();
});
обнаружение набора символов chardet, разработанное Mozilla, используется в FireFox. Исходный код
jchardet является портом Java источника от автоматического алгоритма обнаружения набора символов Mozilla.
NCharDet является портом.Net (C#) порта Java C++, используемого в браузерах Mozilla и FireFox.
Образец C# проекта кода, который использует MLang Microsoft для обнаружения кодировки символов.
UTRAC является инструментом командной строки и библиотекой, записанной в C++ для обнаружения строкового кодирования
cpdetector является проектом Java, используемым для кодирования обнаружения
chsdet является проектом Дельфи и является одиноким исполняемым модулем для автоматического набора символов / кодирование обнаружения данного текста или файла.
Другое полезное сообщение, которое указывает на большое количество библиотек, чтобы помочь Вам определить кодировку символов http://fredeaker.blogspot.com/2007/01/character-encoding-detection.html
Вы могли также смотреть на связанный вопрос, Как я могу Лучше всего Предположить Кодирование, когда BOM (Порядок байтов Mark) отсутствует?, это имеет некоторое полезное содержание.
Эта страница W3C имеет регулярное выражение жемчуга для проверки UTF-8
Нет никакого действительно надежного пути, но в основном, поскольку случайная последовательность байтов (например, строка в стандартном кодировании 8 битов) очень вряд ли будет допустимой строкой UTF-8 (если старший значащий бит байта будет установлен, существуют очень определенные правила относительно того, какие байты могут следовать за ним в UTF-8), можно попытаться декодировать строку как UTF-8 и полагать, что это - UTF-8, при отсутствии ошибок декодирования.
Определение, если там декодировали ошибки, является другой проблемой в целом, многие библиотеки Unicode просто заменяют недопустимые символы вопросительным знаком, не указывая, произошла ли ошибка. Таким образом, Вам нужен явный способ определить, произошла ли ошибка при декодировании или нет.