{"action":"closed","issue":{"url":"https://api.github.com/repos/codenautas/txt-to-sql/issues/3","repository_url":"https://api.github.com/repos/codenautas/txt-to-sql","labels_url":"https://api.github.com/repos/codenautas/txt-to-sql/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/codenautas/txt-to-sql/issues/3/comments","events_url":"https://api.github.com/repos/codenautas/txt-to-sql/issues/3/events","html_url":"https://github.com/codenautas/txt-to-sql/issues/3","id":169642015,"number":3,"title":"Detectar automáticamente el ENCODING y/o UTF-8","user":{"login":"emilioplatzer","id":5725064,"avatar_url":"https://avatars.githubusercontent.com/u/5725064?v=3","gravatar_id":"","url":"https://api.github.com/users/emilioplatzer","html_url":"https://github.com/emilioplatzer","followers_url":"https://api.github.com/users/emilioplatzer/followers","following_url":"https://api.github.com/users/emilioplatzer/following{/other_user}","gists_url":"https://api.github.com/users/emilioplatzer/gists{/gist_id}","starred_url":"https://api.github.com/users/emilioplatzer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emilioplatzer/subscriptions","organizations_url":"https://api.github.com/users/emilioplatzer/orgs","repos_url":"https://api.github.com/users/emilioplatzer/repos","events_url":"https://api.github.com/users/emilioplatzer/events{/privacy}","received_events_url":"https://api.github.com/users/emilioplatzer/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":{"login":"diegoefe","id":1447920,"avatar_url":"https://avatars.githubusercontent.com/u/1447920?v=3","gravatar_id":"","url":"https://api.github.com/users/diegoefe","html_url":"https://github.com/diegoefe","followers_url":"https://api.github.com/users/diegoefe/followers","following_url":"https://api.github.com/users/diegoefe/following{/other_user}","gists_url":"https://api.github.com/users/diegoefe/gists{/gist_id}","starred_url":"https://api.github.com/users/diegoefe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/diegoefe/subscriptions","organizations_url":"https://api.github.com/users/diegoefe/orgs","repos_url":"https://api.github.com/users/diegoefe/repos","events_url":"https://api.github.com/users/diegoefe/events{/privacy}","received_events_url":"https://api.github.com/users/diegoefe/received_events","type":"User","site_admin":false},"assignees":[{"login":"diegoefe","id":1447920,"avatar_url":"https://avatars.githubusercontent.com/u/1447920?v=3","gravatar_id":"","url":"https://api.github.com/users/diegoefe","html_url":"https://github.com/diegoefe","followers_url":"https://api.github.com/users/diegoefe/followers","following_url":"https://api.github.com/users/diegoefe/following{/other_user}","gists_url":"https://api.github.com/users/diegoefe/gists{/gist_id}","starred_url":"https://api.github.com/users/diegoefe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/diegoefe/subscriptions","organizations_url":"https://api.github.com/users/diegoefe/orgs","repos_url":"https://api.github.com/users/diegoefe/repos","events_url":"https://api.github.com/users/diegoefe/events{/privacy}","received_events_url":"https://api.github.com/users/diegoefe/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/codenautas/txt-to-sql/milestones/2","html_url":"https://github.com/codenautas/txt-to-sql/milestones/Versi%C3%B3n%203%20pasos","labels_url":"https://api.github.com/repos/codenautas/txt-to-sql/milestones/2/labels","id":1933855,"number":2,"title":"Versión 3 pasos","description":"ver [wiki](https://github.com/codenautas/txt-to-sql/wiki/Milestones#milestone-2-versi%C3%B3n-3-pasos)","creator":{"login":"emilioplatzer","id":5725064,"avatar_url":"https://avatars.githubusercontent.com/u/5725064?v=3","gravatar_id":"","url":"https://api.github.com/users/emilioplatzer","html_url":"https://github.com/emilioplatzer","followers_url":"https://api.github.com/users/emilioplatzer/followers","following_url":"https://api.github.com/users/emilioplatzer/following{/other_user}","gists_url":"https://api.github.com/users/emilioplatzer/gists{/gist_id}","starred_url":"https://api.github.com/users/emilioplatzer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emilioplatzer/subscriptions","organizations_url":"https://api.github.com/users/emilioplatzer/orgs","repos_url":"https://api.github.com/users/emilioplatzer/repos","events_url":"https://api.github.com/users/emilioplatzer/events{/privacy}","received_events_url":"https://api.github.com/users/emilioplatzer/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":11,"state":"open","created_at":"2016-08-10T01:23:51Z","updated_at":"2016-09-26T14:15:37Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2016-08-05T16:10:35Z","updated_at":"2016-09-26T14:15:37Z","closed_at":"2016-09-26T14:15:37Z","body":"Aclanza con detectar si es ASCII7, UTF8 u otro (que vamos a llamar ANSI): \r\n\r\n1. Si todos los bytes son `code<=127` es ASCII7\r\n2. Es UTF8 si se cumple que:\r\n    1. no todos los caracteres son `ASCII7` (o sea `code<=127`), hay al menos un caracter `continuador` (o sea `code>=128 y code<192`\r\n    2. cuando hay un `code>=192 y code<224` debe seguirse de un `continuador` (solo uno)\r\n    3. cuando hay un `code>=224 y code<240` debe seguirse de dos `continuadores` (solo dos)\r\n    4. cuando hay un `code>=240 y code<248` debe seguirse de tres `continuadores` (solo tres)\r\n    5. no debe haber otros `continuadores` que los especificados en los tres items anteriores\r\n3. Es ANSI si no cumple los dos primeros\r\n"}}
{"actor":{"display_login":"diegoefe"}}