PHP / SQL – Преобразование EBCDIC в ASCII

У нас есть PHP-серверный код, выполняющий SQL-запросы против нашего среднего уровня iSeries.

Вот упрощенная версия SQL-запроса

SELECT 'Regular' "sales_type", sum(sales_type1) "sales" FROM salesTable 

Запрос выполняется просто отлично, проблема в том, что при использовании статического поля / значения, такого как «SomeText» «Title», и результаты возвращаются на PHP, они не в нужном формате

 string(7) "م     " 

Чтобы подключиться к системе и получить результаты

 db2_connect ( '*LOCAL', 'user', 'pass' ); if (! $connection) {[error code]} $stmt = db2_prepare ( $connection, $strSql ); if (! db2_execute ( $stmt ) ) { [error code ] while ( $row = db2_fetch_array ( $stmt ) ) { var_dump($row[1]); } 

Мы находимся на PHP версии 5.2.17

Наш iSeries – V7R1M0

Решение для конвертирования серверной части с PHP или в SQL-запрос будет само собой.

Благодаря!


редактировать

Из предложения баксов мы изменили профиль CCSID пользователя на 37 вместо 65535

Теперь мы возвращаемся (ниже), который немного ближе …

 string(7) "Ù…‡¤“™" 

Возможно, это потому, что мы только изменили пользователя? Нужно ли менять систему, работу или таблицу?


Изменить 2

Вот вывод phpinfo

 _COOKIE["ZDEDebuggerPresent"] php,phtml,php3 _SERVER["ZendEnablerConfig"] /www/zendserver/conf/fastcgi.conf _SERVER["PHPRC"] /usr/local/ZendSvr/etc/ _SERVER["PHP_FCGI_CHILDREN"] 40 _SERVER["PHP_FCGI_MAX_REQUESTS"] 0 _SERVER["CCSID"] 819 _SERVER["LANG"] C _SERVER["INSTALLATION_UID"] 20101203131436121338 _SERVER["LDR_CNTRL"] MAXDATA=0x40000000 _SERVER["LIBPATH"] /usr/local/ZendSvr/lib _SERVER["DB2NOEXITLIST"] TRUE _SERVER["ORACLE_HOME"] . _SERVER["ORA_NLS10"] no value _SERVER["ORA_NLS_PROFILE33"] no value _SERVER["FCGI_ROLE"] RESPONDER _SERVER["REDIRECT_UNIQUE_ID"] UYKvWcCoAQIAAnZHWG8AABS@ _SERVER["REDIRECT_STATUS"] 200 _SERVER["UNIQUE_ID"] UYKvWcCoAQIAAnZHWG8AABS@ _SERVER["QIBM_USE_DESCRIPTOR_STDIO"] Y _SERVER["HTTP_HOST"] vmas400.vm.com:10090 _SERVER["HTTP_CONNECTION"] keep-alive _SERVER["HTTP_X_REQUESTED_WITH"] XMLHttpRequest _SERVER["HTTP_USER_AGENT"] Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 _SERVER["CONTENT_TYPE"] application/x-www-form-urlencoded _SERVER["HTTP_ACCEPT"] */* _SERVER["REFERER"] http://vmas400.vm.com:10090ZendServer/Index/Index _SERVER["HTTP_REFERER"] http://vmas400.vm.com:10090/ZendServer/Index/Index _SERVER["REFERER_URL"] http://vmas400.vm.com:10090/ZendServer/Index/Index _SERVER["HTTP_ACCEPT_ENCODING"] gzip,deflate,sdch _SERVER["HTTP_ACCEPT_LANGUAGE"] en-US,en;q=0.8 _SERVER["HTTP_ACCEPT_CHARSET"] ISO-8859-1,utf-8;q=0.7,*;q=0.3 _SERVER["HTTP_COOKIE"] ZENDSERVERSESSID=7asfv608qffhv556msem6evi66; CosmeticContest=16062; CompanyWithStoreDetail=16061; TYLYClassAnalysis=16068; OrderDetail=17220; RmsOrders=17221; DailyReceipts=16063; DailySales=17562; OnOrder=16064; OpenPurchaseOrders=17566; RegularPriceRankings=17568; ReviewStatistics=17570; SalesAndStock=17573; StocksByPeriod=17575; Top10BestSellers=17577; ReplenishmentAssortment=17269; RABS=17616; FreeFormatSku=16473; TYLYSalesAndOH=21294; SalesRecapByDate=16312; VendorAgendaSummary=23219; BasicStock=23474; InStock=16067; RegSalesAvgStockSummary=21270; TYLYSalesMDGMByStore=23822; VendorAgenda=23826; Header=16066; usc=adam; hudi[u]=d106b7a04c0d94b8a0e7624a017ead98324b57e8; hudi[i]=fec51923e58c84db4647d2b3e11fe03ec3f0c202; FreeFormat=16506; __utma=118969486.352613215.1355776933.1365626094.1367348033.12; __utmz=118969486.1355776933.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); ZDEDebuggerPresent=php,phtml,php3 _SERVER["PATH"] /bin:/usr/bin:/usr/ucb:/usr/bsd:/usr/local/bin _SERVER["SERVER_SIGNATURE"] no value _SERVER["SERVER_SOFTWARE"] Apache _SERVER["SERVER_NAME"] vmas400.vm.com _SERVER["SERVER_ADDR"] 192.168.1.2 _SERVER["SERVER_PORT"] 80 _SERVER["REMOTE_ADDR"] 172.16.129.193 _SERVER["DOCUMENT_ROOT"] /www/zendserver/htdocs/prod _SERVER["SERVER_ADMIN"] [no address given] _SERVER["SCRIPT_FILENAME"] /usr/local/zendsvr/gui/html/index.php _SERVER["DOCUMENT_NAME"] /usr/local/zendsvr/gui/html/index.php _SERVER["REMOTE_PORT"] 14259 _SERVER["REDIRECT_QUERY_STRING"] dojo.preventCache=1367519066445 _SERVER["REDIRECT_URL"] /ZendServer/Information/Phpinfo _SERVER["GATEWAY_INTERFACE"] CGI/1.1 _SERVER["SERVER_PROTOCOL"] HTTP/1.1 _SERVER["REQUEST_METHOD"] GET _SERVER["QUERY_STRING"] dojo.preventCache=1367519066445 _SERVER["REQUEST_URI"] /ZendServer/Information/Phpinfo?dojo.preventCache=1367519066445 _SERVER["SCRIPT_NAME"] /ZendServer/index.php _SERVER["DOCUMENT_URI"] /ZendServer/index.php _SERVER["RULE_FILE"] conf/httpd.conf _SERVER["PHP_SELF"] /ZendServer/index.php _SERVER["REQUEST_TIME"] 1367519066 

РЕДАКТИРОВАТЬ

РЕШЕНИЕ

Решение состояло в том, чтобы изменить профиль пользователя, чтобы использовать CCSID 37, и задания сервера для использования CCSID 37. Мы сделаем ручное изменение, чтобы при перезапуске заданий они не возвращались.