abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 13:22 | Humor

    Asociace repair.org udělila anticeny těm nejhorším produktům představeným na veletrhu CES 2026. Oceněnými jsou například šmírující kamery Amazon Ring AI, chytrý běžecký pás od společnosti Merach, která otevřeně přiznává, že nedokáže zabezpečit osobní data uživatelů, případně jednorázové lízátko, které rozvibrovává čelisti uživatele a tak přehrává hudbu. Absolutním vítězem je lednička od Samsungu, která zobrazuje reklamy a kterou lze otevřít pouze hlasovým příkazem přes cloudovou službu.

    NUKE GAZA! 🎆 | Komentářů: 2
    dnes 12:00 | IT novinky

    Íránští protirežimní aktivisté si všímají 30% až 80% ztráty packetů při komunikaci se satelity služby Starlink. Mohlo by se jednat o vedlejší důsledek rušení GPS, kterou pozemní přijímače Starlinku používají k výpočtu polohy satelitů a kterou se režim rovněž snaží blokovat, podle bezpečnostního experta a iranisty Amira Rashidiho je ale pravděpodobnější příčinou terestrické rušení přímo satelitní komunikace Starlinku podobnou

    … více »
    NUKE GAZA! 🎆 | Komentářů: 1
    dnes 00:55 | IT novinky

    Evropská komise (EK) zvažuje, že zařadí komunikační službu WhatsApp americké společnosti Meta mezi velké internetové platformy, které podléhají přísnější regulaci podle unijního nařízení o digitálních službách (DSA). Firmy s více než 45 miliony uživatelů jsou podle DSA považovány za velmi velké on-line platformy (Very Large Online Platforms; VLOP) a podléhají přísnějším pravidlům EU pro internetový obsah. Pravidla po

    … více »
    Ladislav Hagara | Komentářů: 11
    dnes 00:44 | IT novinky

    Tržní hodnota technologické společnosti Alphabet poprvé v historii přesáhla čtyři biliony dolarů (83 bilionů Kč). Stalo se tak poté, co Apple oznámil, že bude na poli umělé inteligence (AI) spolupracovat s dceřinou firmou Alphabetu, společností Google.

    Ladislav Hagara | Komentářů: 2
    včera 11:11 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 161 (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 10:44 | Nová verze

    Po delší době vývoje vyšla nativní linuxová verze virtuálního bubeníka MT-PowerDrumKit 2 ve formátu VST3. Mezi testovanými hosty jsou Reaper, Ardour, Bitwig a Carla.

    balda | Komentářů: 1
    11.1. 21:33 | Nová verze

    Desktopové prostředí Budgie bylo vydáno ve verzi 10.10. Dokončena byla migrace z X11 na Wayland. Budgie 10 vstupuje do režimu údržby. Vývoj se přesouvá k Budgie 11. Dlouho se řešilo, v čem bude nové Budgie napsáno. Budgie 10 je postaveno nad GTK 3. Přemýšlelo se také nad přepsáním z GTK do EFL. Budgie 11 bude nakonec postaveno nad Qt 6.

    Ladislav Hagara | Komentářů: 0
    11.1. 13:00 | Humor

    OpenChaos.dev je 'samovolně se vyvíjející open source projekt' s nedefinovaným cílem. Každý týden mohou lidé hlasovat o návrzích (pull requestech), přičemž vítězný návrh se integruje do kódu projektu (repozitář na GitHubu). Hlasováním je možné změnit téměř vše, včetně tohoto pravidla. Hlasování končí vždy v neděli v 9:00 UTC.

    NUKE GAZA! 🎆 | Komentářů: 3
    11.1. 03:00 | Nová verze

    Byl vydán Debian 13.3, tj. třetí opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.13, tj. třináctá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

    Ladislav Hagara | Komentářů: 0
    10.1. 03:00 | Komunita

    Na stránkách Evropské komise, na portálu Podělte se o svůj názor, se lze do 3. února podělit o názor k iniciativě Evropské otevřené digitální ekosystémy řešící přístup EU k otevřenému softwaru.

    Ladislav Hagara | Komentářů: 7
    Které desktopové prostředí na Linuxu používáte?
     (7%)
     (5%)
     (0%)
     (9%)
     (20%)
     (3%)
     (6%)
     (3%)
     (11%)
     (49%)
    Celkem 389 hlasů
     Komentářů: 11, poslední dnes 15:18
    Rozcestník

    Dotaz: Postgresql - text - utf8 - \r \n \t ...

    19.4.2020 17:24 Martin
    Postgresql - text - utf8 - \r \n \t ...
    Přečteno: 590×
    Dobrý den, může mi prosím někdo vysvětlit, jak vložit text (obsah souboru) v kódování utf8 do tabulky tak, aby postgres neprovedl konverzi tohoto textu ? Příklad:
    html:
    <!-- soubor v utf8, without bom -->
    <input type="text"<-- tady je CRLF
        data-sometext="ěáíýžč">
    
    sql:
    create table test (html text);
    insert into test values (pg_read_file('...'));
    select * from test;
    
    <input type="text"\r
        data-sometext="ěáíýžč">
    
    Jde o tu značku \r. Postgres prostě převede chr(13) na string \r. Týká se to i ostatních escape sekvencí. Google nepomohl. Píše se tam o convert_from(), encode(), E'\r', ale to prostě není ono. Chtěl bych, aby tam byl vložen ten soubor tak, jak je na disku. Server i client jsou encoding utf8, database má encoding=utf8, collate='C', ctype='C'. Nějak to nechápu. \t \r \n jsou přece platné znaky v utf8. Díky.

    Odpovědi

    NUKE GAZA! 🎆 avatar 19.4.2020 21:16 NUKE GAZA! 🎆 | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Postgresql - text - utf8 - \r \n \t ...

    vložen ten soubor tak, jak je na disku

    hhhhmmmmmmmmmmmmmmmmmmm co ho jakoby přečíst binárně funkcí pg_read_binary_file hele a v db ho jako schovat v proměný typu bytea hele?????? :O ;D

    20.4.2020 06:47 Martin
    Rozbalit Rozbalit vše Re: Postgresql - text - utf8 - \r \n \t ...
    Ano, to jsem také zkoušel. Bohužel, v okamžiku, kdy chci již naimportované bytea parsovat (regexp_replace), musím ho převést na text - a je to tam znovu. Vlastně každý převod z bytea na text končí s vloženými \r \t ...
    20.4.2020 06:57 okbobcz | skóre: 8
    Rozbalit Rozbalit vše Re: Postgresql - text - utf8 - \r \n \t ...
    Implicitní cast z bytea do textu escapuje bílé znaky. Pokud člověk se chce vyhnout této nechtěné konverzi, tak je potřeba použít vlastní funkci:
    CREATE OR REPLACE FUNCTION public.bytea_to_text(bytea)
     RETURNS text
     LANGUAGE sql
    AS $function$
    SELECT convert_from($1, current_setting('server_encoding'))
    $function$
    
    20.4.2020 05:42 okbobcz | skóre: 8
    Rozbalit Rozbalit vše Re: Postgresql - text - utf8 - \r \n \t ...
    K tomuhle by se pg_read_file vůbec nemělo používat. Tahle funkce je navržená pro adminy (server side) pro načítání konfiguráků. Už to, že tuto funkci může používat pouze super user signalizuje, že není navržená pro běžným uživatelem. Postgres je client-server databáze, nikoliv souborová databáze.

    Pokud potřebujete naimportovat soubor, tak pokud je v řádech kilobajtů, tak nejjednodušší je jej načíst na straně klienta, oescapovat a vygenerovat insert. nebo použít prepared statement nebo parametrized statement a pak se nemusí nic escapovat, jelikož obsah jde separátním kanálem.

    Inspiraci můžete čerpat z pgimportdoc

    Další možnost - už přes soubory je načíst soubor do Postgresu jako large Object skrze lo_import. Pak už na serveru je zkonvertovat na text nebo bytea, funkcí lo_get - ukázka. Příklad je v článku na rootu "PostgreSQL 9.4: transakční SQL JSON databáze".

    20.4.2020 07:32 Martin
    Rozbalit Rozbalit vše Re: Postgresql - text - utf8 - \r \n \t ...
    K tomu pg_read_file - je to na serverové straně, a jsou to malé soubory, které se načtou během vytváření databáze.
    ... Pak už na serveru je zkonvertovat na text nebo bytea,
    A o tohle mi jde. Jako bytea je to ok, ale bytea nemohu převést na text -> zase tam vzniknou řetězce \r\n.
    Př.: vezmu string "Hello" + chr(13)+chr(10) + "world"
    select convert_from('\x48656c6c6f0d0a576f726c64','utf8');
    
    console: Hello\r
    world
    copy (select convert_from('\x48656c6c6f0d0a576f726c64','utf8')) to 'testfile.txt';
    
    Soubor obsahuje: Hello\r\nworld
    Díky.
    20.4.2020 07:42 okbobcz | skóre: 8
    Rozbalit Rozbalit vše Re: Postgresql - text - utf8 - \r \n \t ...
    \r bude dost mozna jen o zobrazeni. Postgres \r interne chr(13) zobrazuje jako \r. Interne to ale nejsou dva znaky tj \ a r
    postgres=# select 'Ahoj' || chr(13) || 'Svete';
    ┌─────────────┐
    │  ?column?   │
    ╞═════════════╡
    │ Ahoj\rSvete │
    └─────────────┘
    (1 row)
    
    Kdezto
    postgres=# select 'Ahoj' || chr(10) || 'Svete';
    ┌──────────┐
    │ ?column? │
    ╞══════════╡
    │ Ahoj    ↵│
    │ Svete    │
    └──────────┘
    (1 row)
    
    Jde o to, ze Postgres nezna vyznam \r (chr(13)) a tak jej zobrazi jako \r. Postgres je Unixova databaze, tam se \r pro zalomeni nepouziva.

    Pokud se ho chcete zbavit, tak jej musite smazat.
    20.4.2020 07:43 okbobcz | skóre: 8
    Rozbalit Rozbalit vše Re: Postgresql - text - utf8 - \r \n \t ...
    V Unixu je konec řádku \n, v Dosu \r\n. Postgres escape sekvence, které neumí interpretovat, zobrazuje.
    20.4.2020 07:45 okbobcz | skóre: 8
    Rozbalit Rozbalit vše Re: Postgresql - text - utf8 - \r \n \t ...
    Cokoliv, co vyžaduje superusera, by se pro běžnou práci nemělo používat - pg_read_file. Samozřejmě, že může jít jen o Vaši soukromou aplikaci, ale jinak je to prasárna.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.