The functions Lower() and Upper doesn't work as expected for UTF-8 2-Byte characters

function Main()
local oDlg
local oEdit
local cVar1 := "lowerüöäßUPPER"
local cVar2 := "UPPERÄÜÖßlower"
REQUEST HB_CODEPAGE_UTF8
HB_CDPSELECT( "UTF8" )
FW_SetUnicode( .T. )
DEFINE DIALOG oDlg SIZE 600, 600 PIXEL TRUEPIXEL
@ 40, 20 EDIT oEdit VAR cVar1 SIZE 200,20 PIXEL OF oDlg
@ 60, 20 EDIT oEdit VAR cVar2 SIZE 200,20 PIXEL OF oDlg
@ 80, 20 BUTTON "CHECK" SIZE 100,40 PIXEL OF oDlg ACTION MsgInfo( ;
Lower( "Lower( |" + cVar1 + "|" + CRLF + "|" + cVar2 + "| )" ) + CRLF + CRLF + ;
Upper( "Upper( |" + cVar1 + "|" + CRLF + "|" + cVar2 + "| )" );
)
ACTIVATE DIALOG oDlg CENTERED
RETURN NIL
Windows 11 Pro 22H2 22621.1848
Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384
Harbour 3.2.0dev (r2008190002)
FWH 23.10 x86
Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384
Harbour 3.2.0dev (r2008190002)
FWH 23.10 x86