Corrigez le code de caractère en Java et lisez à partir de l'URL

Contexte

--JRuby #open génère une erreur dans l'environnement Windows 10

Entrée sortie

--Argument --url (nom de variable: lien)

code

JavaOpen.java


import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;

public class JavaOpen{
    public static String open(String link, int time_limit){
        String html = "";
        try {
            URL url = new URL(link);
            URLConnection con = url.openConnection();
            con.setConnectTimeout(time_limit*300);
            con.setReadTimeout(time_limit*700);
            try (InputStream is = con.getInputStream();){
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                byte[] byteChunk = new byte[8192];
                int n;

                while ( (n = is.read(byteChunk)) > 0 ) {
                    baos.write(byteChunk, 0, n);
                }
                byte[] bytes = baos.toByteArray();
                html = bytesToHtml(bytes);
            } catch (IOException e) {
                e.printStackTrace ();
            }
        } finally {
            return html;
        }
    }

    public static String bytesToHtml(byte[] src) throws UnsupportedEncodingException {
        String[] char_codes = { "UTF8","SJIS","EUC_JP","EUC_JP_LINUX","EUC_JP_Solaris" };
        for (String cc: char_codes){
            String s_tmp = new String(src, cc);
            byte[] b_tmp = s_tmp.getBytes(cc);
            if (Arrays.equals(src, b_tmp)) {
                return s_tmp;
            }
        }
        return "";
    }
}

commentaire

--String [] char_codes = {"UTF8", "SJIS", "EUC_JP", "EUC_JP_LINUX", "EUC_JP_Solaris"}; ʻest un code de caractère auquel vous pourrez peut-être accéder, alors n'hésitez pas à l'utiliser. --Je voulais trouver une alternative pour le nom de variable time_limit ... -- setConnectTimeout: setReadTimeout` = 3: 7 Je l'ai alloué, mais qu'en est-il normal? ――Je voulais savoir lire à la fois au lieu de 8192 octets à la fois, mais j'ai perdu l'intention de bouger.

référence

Recommended Posts

Corrigez le code de caractère en Java et lisez à partir de l'URL
Devinez le code de caractère en Java
JSON en Java et Jackson Partie 1 Renvoyer JSON à partir du serveur
L'application absorbe la différence de code de caractère
OCR en Java (reconnaissance de caractères à partir d'images)
Code de caractère Java
Concernant les modificateurs transitoires et la sérialisation en Java
Capture et sauvegarde de l'installation de sélénium en Java
Ajouter, lire et supprimer des commentaires Excel à l'aide de Java
[Java] Lire les fichiers dans src / main / resources
Générer OffsetDateTime à partir de Clock et LocalDateTime en Java
Ruby: Nokogiri identifie automatiquement le code de caractère du html lu en mode binaire
[Deep Learning from scratch] en Java 1. Pour le moment, différenciation et différenciation partielle
Lire JSON en Java
Obtenez l'URL de la destination de la redirection HTTP en Java
Écrivez ABNF en Java et transmettez l'adresse e-mail
Lire la capture de paquets obtenue par tcpdump avec Java
Langage Java du point de vue de Kotlin et C #
Source utilisée pour obtenir l'URL de la source de redirection en Java
Classes et instances Java comprises dans la figure
Soustraire les constantes Enum des chaînes et des valeurs en Java
Différences de code lors de l'utilisation du système de longueur en Java
[Développement Android] Obtenez des images du serveur avec Java et définissez-les dans ImageView! !!
Lire des fichiers binaires en Java 1
Trouvez la classe d'adresse et le type d'adresse à partir de l'adresse IP avec Java
En Java, je souhaite couper plusieurs caractères spécifiés uniquement du début et de la fin.
Réglez la date et l'heure à partir de la chaîne de caractères avec POI
Comment définir le code de caractère et le code de saut de ligne dans Eclipse
Lire l'entrée standard en Java
Comprendre le modèle Singleton en comparant le code Java et JavaScript
Lire des fichiers binaires dans Java 2
Java avec Visual Studio Code
Écrire du code de type Java8 en Java8
Pensez aux différences entre les fonctions et les méthodes (en Java)
Obtenir des attributs et des valeurs à partir d'un fichier XML en Java
Comprendre le modèle Iterator en comparant le code Java et JavaScript
Installez le plugin memcached sur MySQL et accédez à partir de Java
[Java] Obtenez les dates des derniers lundi et dimanche dans l'ordre
Obtenez l'URL publique du fichier privé de Flickr en Java
Lire les 4 premiers octets du fichier de classe Java et générer CAFEBABE
De Java naissant (3 ans) à Node.js (4 ans). Et l'impression de retourner à Java
Évitez les erreurs de code de caractère en java lors de l'utilisation de l'extension VScode RUN-CODE
Exemple de code pour appeler l'API Yahoo! Local Search en Java
Exemple de code utilisant JMustache, le moteur de modèles Moustache en Java
[Java] Comment convertir du type String en type Path et obtenir le chemin
Lire la pression et la température de Raspberry Pi 3 et BMP180 avec Java
Lire et générer un code QR [Android]
Lisez facilement les fichiers texte en Java (Java 11 et Java 7)
Lire le fichier de propriétés Java en C #
Coder Java depuis Emacs avec Eclim
Environnement Java Spring dans vs Code
Exemple d'encodage et de décodage en Java
Spécifiez l'emplacement Java dans eclipse.ini
Lire CSV en Java (annotation Super CSV)
Décompressez le fichier zip en Java
[Java] Supprimer les espaces dans les chaînes de caractères
Nouvelles fonctionnalités de Java 9 et exemple de code
Générer l'URL de l'API CloudStack en Java
Classe StringBuffer et StringBuilder en Java