diff --git a/README.md b/README.md index dd87e43..cc2d310 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,8 @@ Le projet est disponible sur [function.divlo.fr](https://function.divlo.fr/). | **convertCurrency(value, currency, url)** | Convertis une valeur dans une devise dans une autre devise grâce à l'API [exchangeratesapi.io](https://exchangeratesapi.io/). | - value : la valeur à convertir - currency : la devise à avoir après conversion - url : l'url de la requête à l'API en fonction du paramètre dans l'url '?base=' | | **utf8ToBin(s)** | Texte en Binaire (UTF-8). | - s : la valeur à convertir | | **binToUtf8(s)** | Binaire (UTF-8) en Texte. | - s : la valeur à convertir | +| **utf8ToHex(s)** | Texte en Hexadécimal (UTF-8). | - s : la valeur à convertir | +| **hexToUtf8(s)** | Hexadécimal (UTF-8) en Texte. | - s : la valeur à convertir | | **convertDecimalBinaryHexadecimal(value, option)** | Convertis des nombres de différents bases. | - value : la valeur à convertir - option : En quelle base convertir | | **convertArabicToRoman(nombre)** | Convertis un nombre arabe en nombre romain. | - nombre : le nombre à convertir | | **convertRomanToArabic(str)** | Convertis un nombre romain en nombre arabe. | - str : le nombre romain à convertir | diff --git a/scripts/fonctions_principales.js b/scripts/fonctions_principales.js index 07635dd..24a16a5 100644 --- a/scripts/fonctions_principales.js +++ b/scripts/fonctions_principales.js @@ -202,16 +202,41 @@ function utf8ToBin(s) { } // Binaire (UTF-8) en Texte function binToUtf8(s){ -try { - var i = 0, l = s.length, chr, out = ''; - for( ; i < l; i += 8){ - chr = parseInt( s.substr(i, 8 ), 2).toString(16); - out += '%' + ((chr.length % 2 == 0) ? chr : '0' + chr); + try { + var i = 0, l = s.length, chr, out = ''; + for( ; i < l; i += 8){ + chr = parseInt( s.substr(i, 8 ), 2).toString(16); + out += '%' + ((chr.length % 2 == 0) ? chr : '0' + chr); + } + return decodeURIComponent(out); + } catch (error) { + return s; } - return decodeURIComponent(out); -} catch (error) { - return s; } +// Texte en Hexadécimal (UTF-8) +function utf8ToHex (s) { + try { + s = unescape( encodeURIComponent( s ) ); + var chr, i = 0, l = s.length, out = ''; + for( ; i < l; i++ ){ + chr = s.charCodeAt( i ).toString( 16 ); + out += ( chr.length % 2 == 0 ) ? chr : '0' + chr; + out += " "; + } + return out; + } + catch (error) { + return s; + } +} +// Hexadécimal (UTF-8) en Texte +function hexToUtf8 (s) { + try { + return decodeURIComponent( s.replace( /../g, '%$&' ) ); + } + catch (error) { + return s; + } } // Convertis des nombres de différents bases function convertDecimalBinaryHexadecimal(value, option) { diff --git a/scripts/main.js b/scripts/main.js index 5cb9e62..74e9126 100644 --- a/scripts/main.js +++ b/scripts/main.js @@ -201,6 +201,14 @@ $(function () { $('.results').html(binaryResult); } + else if (option === 'TextToHexadecimal') { + let result = utf8ToHex(value); + $('.results').html(result.toUpperCase()); + } + else if (option === 'HexadecimalToText') { + let result = hexToUtf8(value.replace(/\s/g,'')); + $('.results').html(result); + } else { $('.results').html(messageError); } diff --git a/views/function-views/convertEncoding.php b/views/function-views/convertEncoding.php index d70a152..888b375 100644 --- a/views/function-views/convertEncoding.php +++ b/views/function-views/convertEncoding.php @@ -25,6 +25,8 @@ + +