Hi,
unicode strings are half-implemented in the engine. There are many functions that don't work with unicode strings. error funtion is one of those, I guess. I remember str_len, str_clip and str_trunc failing too. There might be more...

TEXT and PANEL digits shows unicode strings correctly.
Click to reveal..

Code:
#include <acknex.h>
#include <windows.h>

HRESULT WINAPI SHGetFolderPath(HWND hwndOwner, int nFolder,HANDLE hToken,DWORD dwFlags,char* pszPath);
#define PRAGMA_API SHGetFolderPath;Shell32.dll!SHGetFolderPathW

const int APPDATA = 0x001A;

FONT *fnt = "Arial#24";
TEXT *txtW =
{
	font = fnt;
	pos_x = 10;
	pos_y = 10;
	strings = 1;
	flags = SHOW;
}

function get_appdata_folder_startup()
{
	short temp_getfolder[260];
	SHGetFolderPath ( NULL, APPDATA, 0, NULL, temp_getfolder );
	*txtW->pstring = str_createw ( temp_getfolder );
}

void main ( )
{
	while ( !key_esc )
		wait ( 1 );
	
	sys_exit ( NULL );
}