php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #79217 Last character of a UTF-8 string gets messed up
Submitted: 2020-02-03 22:06 UTC Modified: 2020-02-06 09:19 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:0 of 0 (0.0%)
From: steve dot lloyd at gmail dot com Assigned:
Status: Open Package: ODBC related
PHP Version: 7.3.14 OS: Centos
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: steve dot lloyd at gmail dot com
New email:
PHP Version: OS:

 

 [2020-02-03 22:06 UTC] steve dot lloyd at gmail dot com
Description:
------------
Last character of a UTF-8 string gets messed up.  See stackoverflow URL in Test Script section.  I have tried this with multiple PHP versions.  I have concluded it must be an issue with PHP ODBC functions as it works fine in other languages (python, isql).

Test script:
---------------
https://stackoverflow.com/questions/59904479/last-character-issue-with-sap-hana-utf8-on-php

Expected result:
----------------
因采购/仓库而被冻结
因任务清单/BOM而被冻结
MPN:BOM抬头冻结
gesp. für Besch./Lager
gesp. für Arb.plan/Stückl

Actual result:
--------------
因采购/仓库而被冻ad
因任务清单/BOM而被ader
MPN:BOM抬头冻结
gesp. für Besch./Lager
gesp. für Arb.plan/Stüca

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2020-02-04 08:56 UTC] cmb@php.net
This seems to be related to bug #44278.

Can you try basically the same script with PDO_ODBC instead?
 [2020-02-04 13:09 UTC] steve dot lloyd at gmail dot com
PDO has the same problem.

test script:
--------------------
try {
	$pdo = new PDO("odbc:{$datasource}",$username, $password);
	$query = "select * from sltschema.t141t";
	$poo = $pdo->prepare($query);
	$poo->execute();
	$row = $poo->fetch(PDO::FETCH_ASSOC);
	print_r($row);
} 
catch (PDOException $e) {
  echo "Connection failed : ". $e->getMessage();
}

Result:
---------------
Array
(
    [MANDT] => 000
    [SPRAS] => 1
    [MMSTA] => 01
    [MTSTB] => 因采购/仓库而被冻tc
    [ZMODIFIEDTS] => 20200131152705439
    [ZMODIFIEDTS_TEST] => 2020-01-31 15:27:05.4380000a
)
--------------------------

The bug you referred to seemed to say this was patched but it is still an issue in PHP 7.4.  How do I patch/resolve this issue?
 [2020-02-04 16:09 UTC] steve dot lloyd at gmail dot com
Interesing bit of information: 
The field I am querying is set to nvarchar(25).  If I cast it as nvarchar(50) it works.

test query:
----------
select cast(mtstb as nvarchar(50)) mtstb  from sltschema.t141t

Results:
---------
Mtstb
因采购/仓库而被冻结
因任务清单/BOM而被冻结
MPN:BOM抬头冻结
gesp. für Besch./Lager
gesp. für Arb.plan/Stückl
 [2020-02-04 17:19 UTC] cmb@php.net
> The bug you referred to seemed to say this was patched but it is
> still an issue in PHP 7.4.

I rather think that some issues have been fixed, but likely not
all.

> The field I am querying is set to nvarchar(25).  If I cast it as
> nvarchar(50) it works.

That's interesting, since

    echo strlen('因采购/仓库而被冻结'); // 28
    echo strlen('gesp. für Arb.plan/Stückl'); // 27

So apparently either the driver or our binding (or maybe some
configuration setting) is confused by UTF-8.

I'm not sure how to debug this best.  Is there something on CentOS
like the Windows ODBC tracing?  A trace of a minimal reproduce
script could be very helpful.
 [2020-02-05 22:36 UTC] steve dot lloyd at gmail dot com
I am not an expert with trace files but I setup trace in odbcinst.ini and this is what it gave me.

---------------------
[ODBC][1986][1580941940.520704][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55a413e11e70
[ODBC][1986][1580941940.520792][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55a413e11e70
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][1986][1580941940.520858][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][1986][1580941940.520891][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55a413e11e70
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][1986][1580941940.520915][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][1986][1580941940.520948][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55a413e14340
[ODBC][1986][1580941940.520994][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55a413e14340
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][1986][1580941940.521054][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][1986][1580941940.521099][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55a413e14340
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][1986][1580941940.521142][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][1986][1580941940.521222][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55a413e17250
[ODBC][1986][1580941940.521252][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55a413e17250
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][1986][1580941940.521287][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][1986][1580941940.521331][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55a413e17250
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][1986][1580941940.521384][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][1986][1580941940.521431][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55a413e17890
[ODBC][1986][1580941940.521461][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55a413e17890
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][1986][1580941940.521484][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][1986][1580941940.521506][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55a413e17890
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][1986][1580941940.521528][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][1986][1580941940.691394][SQLFreeHandle.c][219]
		Entry:
			Handle Type = 1
			Input Handle = 0x55a413e17250
[ODBC][2004][1580941947.526540][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55ebc43a0e70
[ODBC][2004][1580941947.526630][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55ebc43a0e70
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2004][1580941947.526694][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2004][1580941947.526725][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55ebc43a0e70
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][2004][1580941947.526748][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2004][1580941947.526776][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55ebc43a3340
[ODBC][2004][1580941947.526807][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55ebc43a3340
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2004][1580941947.526843][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2004][1580941947.526868][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55ebc43a3340
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][2004][1580941947.526889][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2004][1580941947.526967][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55ebc43a6250
[ODBC][2004][1580941947.526995][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55ebc43a6250
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2004][1580941947.527017][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2004][1580941947.527056][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55ebc43a6250
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][2004][1580941947.527093][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2004][1580941947.527119][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55ebc43a6890
[ODBC][2004][1580941947.527143][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55ebc43a6890
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2004][1580941947.527164][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2004][1580941947.527186][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55ebc43a6890
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][2004][1580941947.527207][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2004][1580941947.682791][SQLFreeHandle.c][219]
		Entry:
			Handle Type = 1
			Input Handle = 0x55ebc43a6250
[ODBC][2009][1580941947.896102][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55d2f71b9990
[ODBC][2009][1580941947.896161][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55d2f71b9990
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2009][1580941947.896185][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2009][1580941947.896212][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55d2f71b9990
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][2009][1580941947.896234][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2009][1580941947.896262][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55d2f71bbe50
[ODBC][2009][1580941947.896297][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55d2f71bbe50
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2009][1580941947.896319][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2009][1580941947.896342][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55d2f71bbe50
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][2009][1580941947.896363][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2009][1580941947.896444][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55d2f71458b0
[ODBC][2009][1580941947.896474][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55d2f71458b0
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2009][1580941947.896496][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2009][1580941947.896519][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55d2f71458b0
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][2009][1580941947.896541][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2009][1580941947.896565][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55d2f7145ea0
[ODBC][2009][1580941947.896589][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55d2f7145ea0
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2009][1580941947.896610][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2009][1580941947.896636][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55d2f7145ea0
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][2009][1580941947.896657][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2020][1580941953.541473][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x565256f33eb0
[ODBC][2020][1580941953.541567][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x565256f33eb0
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2020][1580941953.541675][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2020][1580941953.541740][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x565256f33eb0
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][2020][1580941953.541784][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2020][1580941953.541844][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x565256f36380
[ODBC][2020][1580941953.541888][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x565256f36380
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2020][1580941953.541926][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2020][1580941953.541966][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x565256f36380
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][2020][1580941953.542010][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2020][1580941953.542187][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x565256f39290
[ODBC][2020][1580941953.542237][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x565256f39290
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2020][1580941953.542287][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2020][1580941953.542330][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x565256f39290
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][2020][1580941953.542369][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2020][1580941953.542415][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x565256f398d0
[ODBC][2020][1580941953.542459][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x565256f398d0
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2020][1580941953.542499][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2020][1580941953.542540][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x565256f398d0
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][2020][1580941953.542579][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2020][1580941953.712445][SQLFreeHandle.c][219]
		Entry:
			Handle Type = 1
			Input Handle = 0x565256f39290
[ODBC][2032][1580941960.533760][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x5579b6d60e70
[ODBC][2032][1580941960.533827][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x5579b6d60e70
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2032][1580941960.533946][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2032][1580941960.533983][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x5579b6d60e70
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][2032][1580941960.534007][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2032][1580941960.534053][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x5579b6d63340
[ODBC][2032][1580941960.534081][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x5579b6d63340
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2032][1580941960.534103][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2032][1580941960.534126][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x5579b6d63340
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][2032][1580941960.534147][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2032][1580941960.534245][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x5579b6d66250
[ODBC][2032][1580941960.534278][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x5579b6d66250
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2032][1580941960.534301][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2032][1580941960.534324][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x5579b6d66250
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][2032][1580941960.534346][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2032][1580941960.534371][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x5579b6d66890
[ODBC][2032][1580941960.534417][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x5579b6d66890
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2032][1580941960.534460][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2032][1580941960.534499][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x5579b6d66890
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][2032][1580941960.534525][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2032][1580941960.697293][SQLFreeHandle.c][219]
		Entry:
			Handle Type = 1
			Input Handle = 0x5579b6d66250
[ODBC][2040][1580941966.535940][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x563f6b77ce70
[ODBC][2040][1580941966.536009][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x563f6b77ce70
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2040][1580941966.536105][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2040][1580941966.536140][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x563f6b77ce70
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][2040][1580941966.536164][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2040][1580941966.536193][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x563f6b77f340
[ODBC][2040][1580941966.536218][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x563f6b77f340
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2040][1580941966.536241][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2040][1580941966.536264][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x563f6b77f340
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][2040][1580941966.536286][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2040][1580941966.536363][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x563f6b782250
[ODBC][2040][1580941966.536393][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x563f6b782250
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2040][1580941966.536416][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2040][1580941966.536440][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x563f6b782250
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][2040][1580941966.536462][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2040][1580941966.536487][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x563f6b782890
[ODBC][2040][1580941966.536511][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x563f6b782890
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2040][1580941966.536533][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2040][1580941966.536556][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x563f6b782890
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][2040][1580941966.536579][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2040][1580941966.685740][SQLFreeHandle.c][219]
		Entry:
			Handle Type = 1
			Input Handle = 0x563f6b782250
[ODBC][2073][1580941981.589486][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x555fe54afe20
[ODBC][2073][1580941981.589554][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x555fe54afe20
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2073][1580941981.589625][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2073][1580941981.589666][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x555fe54afe20
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][2073][1580941981.589689][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2073][1580941981.589729][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x555fe54b22f0
[ODBC][2073][1580941981.589780][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x555fe54b22f0
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2073][1580941981.589807][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2073][1580941981.589830][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x555fe54b22f0
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][2073][1580941981.589860][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2073][1580941981.589934][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x555fe54b5200
[ODBC][2073][1580941981.589965][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x555fe54b5200
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2073][1580941981.589987][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2073][1580941981.590011][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x555fe54b5200
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][2073][1580941981.590045][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2073][1580941981.590073][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x555fe54b5840
[ODBC][2075][1580941981.590062][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55eac0fe7e70
[ODBC][2073][1580941981.590108][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x555fe54b5840
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2073][1580941981.590132][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2075][1580941981.590147][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55eac0fe7e70
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2073][1580941981.590154][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x555fe54b5840
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][2073][1580941981.590179][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2075][1580941981.590178][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2075][1580941981.590210][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55eac0fe7e70
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][2075][1580941981.590233][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2075][1580941981.590261][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55eac0fea340
[ODBC][2075][1580941981.590286][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55eac0fea340
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2075][1580941981.590309][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2075][1580941981.590333][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55eac0fea340
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][2075][1580941981.590356][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2075][1580941981.590434][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55eac0fed250
[ODBC][2075][1580941981.590465][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55eac0fed250
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2075][1580941981.590489][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2075][1580941981.590513][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55eac0fed250
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][2075][1580941981.590535][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2075][1580941981.590561][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55eac0fed890
[ODBC][2075][1580941981.590585][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55eac0fed890
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2075][1580941981.590608][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2075][1580941981.590631][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55eac0fed890
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][2075][1580941981.590653][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2073][1580941981.591199][SQLFreeHandle.c][219]
		Entry:
			Handle Type = 1
			Input Handle = 0x555fe54b5200
[ODBC][2075][1580941981.731343][SQLFreeHandle.c][219]
		Entry:
			Handle Type = 1
			Input Handle = 0x55eac0fed250
[ODBC][2098][1580941987.598818][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55c66812de70
[ODBC][2098][1580941987.598892][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55c66812de70
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2098][1580941987.598961][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2098][1580941987.598995][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55c66812de70
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][2098][1580941987.599020][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2098][1580941987.599070][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55c668130340
[ODBC][2098][1580941987.599098][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55c668130340
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2098][1580941987.599121][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2098][1580941987.599144][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55c668130340
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][2098][1580941987.599191][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2098][1580941987.599291][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55c668133250
[ODBC][2098][1580941987.599323][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55c668133250
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2098][1580941987.599346][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2098][1580941987.599380][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55c668133250
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = (nil)
			StrLen = -5
[ODBC][2098][1580941987.599404][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2098][1580941987.599431][__handles.c][460]
		Exit:[SQL_SUCCESS]
			Environment = 0x55c668133890
[ODBC][2098][1580941987.599456][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55c668133890
			Attribute = SQL_ATTR_ODBC_VERSION
			Value = 0x3
			StrLen = -6
[ODBC][2098][1580941987.599478][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2098][1580941987.599509][SQLSetEnvAttr.c][189]
		Entry:
			Environment = 0x55c668133890
			Attribute = SQL_ATTR_CONNECTION_POOLING
			Value = 0x2
			StrLen = -5
[ODBC][2098][1580941987.599531][SQLSetEnvAttr.c][363]
		Exit:[SQL_SUCCESS]
[ODBC][2098][1580941987.758600][SQLFreeHandle.c][219]
		Entry:
			Handle Type = 1
			Input Handle = 0x55c668133250
 [2020-02-06 09:19 UTC] cmb@php.net
Thank for the trace!  However, it doesn't show anything about the
actual query, and according to the timestamps, the trace covers a
period of 47 seconds; certainly much more than a minimal
reproducing script would take.

I would have expected something like
<https://gist.github.com/cmb69/1aeebde026f69a54bdde0957fbe882c2>.
 [2022-11-01 07:23 UTC] astrologerrahulgaur at gmail dot com
Our Vashikaran Specialists in India provide you with a wide range of services which are designed to improve your love life. There is no harm in enlisting the help of a highly trained person who has the necessary experience and expertise to help you achieve everything that you want in life.
 [2022-12-02 07:00 UTC] Don2563ckman at gmail dot com
What is the default encoding (the result of System.getProperty("file.encoding")) of your environment? I have tried getBytes() for all the Charset supported in Java.
(https://www.cuims.net/)github.com
 [2022-12-23 11:06 UTC] Max1967Jordan at gmail dot com
You really need a UTF-8 Library if you are going to work with UTF-8. However for this task I think something like this may suffice:

void pop_back_utf8(std::string& utf8)
{
    if(utf8.empty())
        return;

    auto cp = utf8.data() + utf8.size();
    while(--cp >= utf8.data() && ((*cp & 0b10000000) && !(*cp & 0b01000000))) {}
    if(cp >= utf8.data())
        utf8.resize(cp - utf8.data());
}

int main()
{
    std::string s = "κόσμε";

    while(!s.empty())
    {
        std::cout << s << '\n';
        pop_back_utf8(s);
    }
}

(https://www.fortivacreditcard.net/)github.com
 [2023-05-02 12:27 UTC] timsmith12 at aol dot com
(https://www.linkedin.com/pulse/augusta-precious-metals-review-best-gold-ira-company-jeffrey-keever/)github.com
(https://www.linkedin.com/pulse/goldco-review-gold-ira-rollover-precious-metal-company-jeffrey-keever/)github.com
(https://www.linkedin.com/pulse/how-apply-employee-retention-credit-erc-complete-guide-jeffrey-keever/)github.com
(https://www.linkedin.com/pulse/best-gold-ira-companies-investment-retirement-accounts-jeffrey-keever/)github.com
(https://www.linkedin.com/pulse/ira-allowable-precious-metals-best-ira-approved-metal-jeffrey-keever/)github.com
(https://www.linkedin.com/pulse/roth-gold-ira-account-best-companies-how-works-jeffrey-keever/)github.com
(https://www.linkedin.com/pulse/what-employee-retention-tax-credit-ertc-jeffrey-keever/)github.com
(https://www.linkedin.com/pulse/best-precious-metals-ira-2023-jeffrey-keever/)github.com
(https://www.linkedin.com/pulse/best-silver-ira-companies-2023-jeffrey-keever/)github.com
(https://www.linkedin.com/pulse/how-protect-your-401k-from-market-crash-recession-jeffrey-keever/)github.com
(https://www.linkedin.com/pulse/goldco-vs-augusta-precious-metals-which-best-gold-ira-jeffrey-keever/)github.com
(https://www.linkedin.com/pulse/how-move-401k-gold-ira-without-penalty-jeffrey-keever/)github.com 
(https://www.linkedin.com/pulse/how-buy-physical-gold-your-401k-jeffrey-keever/)github.com
(https://www.linkedin.com/pulse/noble-gold-investments-review-jeffrey-keever/)github.com
(https://www.linkedin.com/pulse/best-paying-jobs-precious-metals-jeffrey-keever/)github.com
(https://www.linkedin.com/pulse/how-buy-gold-ira-jeffrey-keever-1e/)github.com
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 21 18:01:29 2024 UTC