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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 4
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 22
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 8
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 3
2.12. 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
2.12. 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 1
2.12. 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
1.12. 21:00 | Nová verze

Byla vydána beta verze Linux Mintu 18.1 s kódovým jménem Serena. Na blogu Linux Mintu jsou hned dvě oznámení. První o vydání Linux Mintu s prostředím MATE a druhé o vydání Linux Mintu s prostředím Cinnamon. Stejným způsobem jsou rozděleny také poznámky k vydání (MATE, Cinnamon) a přehled novinek s náhledy (MATE, Cinnamon). Linux Mint 18.1 bude podporován až do roku 2021.

Ladislav Hagara | Komentářů: 0
1.12. 16:42 | Nová verze

Byl vydán Devuan Jessie 1.0 Beta 2. Jedná se o druhou beta verzi forku Debianu bez systemd představeného v listopadu 2014 (zprávička). První beta verze byla vydána v dubnu letošního roku (zprávička). Jedna z posledních přednášek věnovaných Devuanu proběhla v listopadu na konferenci FSCONS 2016 (YouTube, pdf).

Ladislav Hagara | Komentářů: 2
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 771 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Linux, PHP, Apache - MSSQL, kódování a zobrazení ntext

5.8.2010 15:19 jben | skóre: 4
Linux, PHP, Apache - MSSQL, kódování a zobrazení ntext
Přečteno: 1947×
Podařilo se mi zprovoznit zobrazování dat z MSSQL serveru (Server2003, SQL2005) přes Freetds 0.82 do Apache/2.2.3 a PHP 5.1.6. na Centos5/2.6.18 Nedaří se mi překonat 2 překážky: 1. nesprávné kódování zobrazených dat nastavení: -MSSQL - UTF-8/Czech_CI_AS -freetds.conf - tds version=8.0 a client charset=UTF-8 -php.ini - default_charset = "utf-8" a mssql.charset = "utf-8" -httpd.conf - AddDefaultCharset Off, -*.php - meta ...charset=utf-8 Asi mi něco uniká, ale prezentovaná data jsou stále ve Windows-1250.

2. zobrazení pole poznámky (ntext) příklad: $vysledek2 = mssql_query("SELECT TOP 20 ID,SkupZbo,RegCis,Poznamka ....."); while ($zaznam2 = mssql_fetch_array($vysledek2) ): ... Dotaz funguje jen pokud tam není pole Poznamka, které je typu ntext. Jinak vznikne problém s kódováním nebo collation. Předpokládám, že bude nutná nějaká konverze, jen nevím jak se obdobné řeší.

Můžete někdo poradit, jak oba problémy překonat nebo nasměrovat na obdobné řešení. Předem dík.

Odpovědi

5.8.2010 15:26 jben | skóre: 4
Rozbalit Rozbalit vše Linux, PHP, Apache - MSSQL, kódování a zobrazení ntext - oprava

Tentokrát snad přehledněji.

Podařilo se mi zprovoznit zobrazování dat z MSSQL serveru (Server2003, SQL2005) přes Freetds 0.82 do Apache/2.2.3 a PHP 5.1.6. na Centos5/2.6.18

Nedaří se mi překonat 2 překážky:

1. nesprávné kódování zobrazených dat nastavení:
-MSSQL - UTF-8/Czech_CI_AS
-freetds.conf - tds version=8.0 a client charset=UTF-8
-php.ini - default_charset = "utf-8" a mssql.charset = "utf-8"
-httpd.conf - AddDefaultCharset Off
-*.php - meta ...charset=utf-8

Asi mi něco uniká, ale prezentovaná data jsou stále ve Windows-1250.

2. zobrazení pole poznámky (ntext) příklad:

$vysledek2 = mssql_query("SELECT TOP 20 ID,SkupZbo,RegCis,Poznamka .....");
while ($zaznam2 = mssql_fetch_array($vysledek2) ): ...

Dotaz funguje jen pokud tam není pole Poznamka, které je typu ntext. Jinak vznikne problém s kódováním nebo collation. Předpokládám, že bude nutná nějaká konverze, jen nevím jak se obdobné řeší.

Můžete někdo poradit, jak oba problémy překonat nebo nasměrovat na obdobné řešení. Předem dík.

5.8.2010 16:36 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Linux, PHP, Apache - MSSQL, kódování a zobrazení ntext - oprava
Zkuste:
mssql.charset="UTF-8", případně v php kódu ini_set("mssql.charset", "UTF-8");.
(UTF-8 velkými písmeny…)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
5.8.2010 17:16 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Linux, PHP, Apache - MSSQL, kódování a zobrazení ntext - oprava
Ale abych to doplnil, tak ještě jednou.
Nepamatuji si to přesně (už je to dýl co jsme s tím dělal a nemám nyní možnost se na to juknout), ale mělo by to být tak jak popisuji v následujícím komentovaném příkladu:
/* 
 nastavit tyto volby nebo je nastavit v php.ini -------------------
*/
ini_set( 'mssql.charset',   'UTF-8' ); //charset

/*
 Pokude nebude následující nastaveno, tak texty se normálně oříznou, bez nějaké chyby či varování.
 Jestli se nepletu, tak nenastaveno (či '-1'), znamená jen 4KiB.
*/
ini_set( 'mssql.textlimit', '65536' ); 
ini_set( 'mssql.textsize',  '65536' ); 

/*
 ¿Konverze datumů?
*/
//ini_set( 'mssql.datetimeconvert',  '1 nebo 0' );
/*
 ------------------------------------------------------------------
*/

$con = mssql_connect(....);

@mssql_query("SET TEXTSIZE 65536", $con); //nastavit před selectem, postačuje 1× za sezení - možná nebude nutné
                                          //asi je to ekvivalentem 'mssql.textsize' - nepamatuji si :(


//Pravděpodobně bude nutné u SQL dotazu přetypovat NTEXT a NVARCHAR např.:
$rs = mssql_query('SELECT TOP 20 ID,SkupZbo,RegCis,CAST(Poznamka AS TEXT)…');
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
5.8.2010 21:35 jben | skóre: 4
Rozbalit Rozbalit vše Re: Linux, PHP, Apache - MSSQL, kódování a zobrazení ntext - oprava

Nápady jsem vyzkoušel, ale úspěch byl jen částečný:

ad.1. kódování
  • žádná z uvedených možností v kódování nic nezměnila
  • mám spíš pocit, že problém bude někde u freetds, ale nevím , jak to ověřit
ad.2. ntext
  • změna byla úspěšná, jen jsem to musel trochu upravit:
    $rs = mssql_query('SELECT TOP 20 ID,SkupZbo,RegCis,CAST(Poznamka AS TEXT) AS Poznamka …');
  • původní návrh sice odstranil chybu dotazu, ale nic se nevypsalo

Přesto dík za pomoc, budu hledat dál.

6.8.2010 07:44 jben | skóre: 4
Rozbalit Rozbalit vše Re: Linux, PHP, Apache - MSSQL, kódování a zobrazení ntext - oprava

Ještě doplním poslední zjištění k chybě kódování:

  • pokud spustím stejný dotaz přes tsql na konzoli, tak je kódování správné
  • zjistil jsem, že freetds používá freetds.conf ze dvou umístění, podle toho, kdo freetds volá
    • pokud spustím tsql na konzoli, tak použije /etc/freetds.conf
    • pokud spojení inicializuje php, tak použije /usr/local/etc/freetds.conf
    • nicméně oba jsou stejné, takže by to vadit nemuselo, ale je to divné
    • důvod jsem zatím neodhalil, ale může to souviset z různými pokusy prováděnými při zprovozňování mssql-freetds-php komunikace
6.8.2010 09:10 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Linux, PHP, Apache - MSSQL, kódování a zobrazení ntext - oprava
Ad. 'AS' - to jsem už nedopisoval, to jsem nechal na Vás…, důležité je to CAST-ování
Ad. kódování, jste si jistý, že to není v utf-ku, a že chyba není jen v zobrazení?
Lze se na tu stránku někde podívat?, nebo wget-em stáhněte tu stránku a hoďte ji sem.

Zkoušel jste variantu:
ini_set( 'mssql.charset',   'UTF-8' );// nebo/a v php.ini 
ini_set( 'mssql.textlimit', '65536' );// nebo/a v php.ini 
ini_set( 'mssql.textsize',  '65536' );// nebo/a v php.ini 
$con = mssql_connect(....);
@mssql_query("SET TEXTSIZE 65536", $con); 
$rs = mssql_query('SELECT TOP 20 ID,SkupZbo,RegCis,Poznamka…');//bez CAST
?
Za předpokladu že texty nejsou dlouhé, jinak zvýšit hodnotu 65536, buď to musí být větší než maximální délka textu, nebo 2× větší než maximální délka textu… „či ja vjem“ :)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
6.8.2010 23:48 jben | skóre: 4
Rozbalit Rozbalit vše Re: Linux, PHP, Apache - MSSQL, kódování a zobrazení ntext - oprava
Příloha:

Takže úpravy nastavení ini_... nemají žádný vliv, v php.ini už to je zapsáno od minule.

S tou poznámkou mi to jinak než s CAST nefunguje.

Ohledně skutečného kódování stránky si samozřejmě jistý na 100% nejsem, ale v rámci svých možností jsem jinou možnost nezjistil. Stránka není nikde vystavená, je to jen na intranetu, přes wget neumím stránku sestavit tak, aby obsahovala i data z db.

Připojuji něco ze stránky, kterou jsem uložil ve Voknech z FF a ručně pročistil, je tam jen ta část, kolem dat z databáze- ty jsou v té tabulce.

Jelikož se jedná pouze o dvě pole, ve kterých jsou problematická data, tak jdu hledat něco pro překódování jen konkrétních polí před zobrazením, třeba to bude stačit.

K tomu kódování mě ještě napadá možnost, že jsem nějak nesprávně zkompiloval php s freetds, jen teď nevím, jak to oveřit.

Opět dík za trpělivost a rady.

7.8.2010 00:11 jben | skóre: 4
Rozbalit Rozbalit vše Re: Linux, PHP, Apache - MSSQL, kódování a zobrazení ntext - oprava

Kódování jsem nakonec vyřešil překódováním až v php

echo "...".$zaznam2["RegCis"]."...";
echo "...".iconv('CP1250', 'UTF-8', $zaznam2['Nazev1'])."...";
echo "...".iconv('CP1250', 'UTF-8', $zaznam2['Poznamka'])."...";

Určitě to není ideální řešení, ale momentálně to splňuje účel, takže to zatím dál zkoumat nebudu.

9.8.2010 09:43 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Linux, PHP, Apache - MSSQL, kódování a zobrazení ntext - oprava
Když to funguje… :)
Ono to má možná logiku, ten CAST převede ten text asi do default kódování serveru M$SQL, což bude asi 'Windows-1250' a už to tak zůstane.
Nějak mi stále uniká práce se znakovýma sadama u M$SQL a u M$ obecně :(, ale taky to zkoumat nebudu :).
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

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.