DynamoDB scan with umlaut in ExpressionAttributeValues is returning no results

0

I run some scan request on a dynamoDB table to find User based on their first and/or last names, which can contain umlaut characters like öäü. My JSON request looks like

{"TableName":"user-table-name","FilterExpression":"contains(#firstName, :firstName) and contains(#lastName, :lastName)","ExpressionAttributeNames":{"#firstName":"firstName","#lastName":"lastName"},"ExpressionAttributeValues":{":firstName":"ÖÄÜ",":lastName":"öäü"}}

But I am getting no results for this query, although the entry exists in the table and I am able to scan/query it on the AWS Console. Anyone know why this happens? Does DynamoDB not support characters like umlaut?

This works in ExpressionAttributeValues ...

":firstName": `ÄÖÜ`,
":lastName": `äöü`,

But this does not ..

":firstName": `${params.firstName}`,
":lastName": `${params.lastName}`,

I am using the javascript aws-sdk

      if (params.firstName && params.lastName) {
        dynamodbParams.FilterExpression = "contains(#firstName, :firstName) and contains(#lastName, :lastName)";
        dynamodbParams.ExpressionAttributeNames = {
          "#firstName": "firstName",
          "#lastName": "lastName",
        };
        dynamodbParams.ExpressionAttributeValues = {
          ":firstName": `${params.firstName}`,
          ":lastName": `${params.lastName}`,
          // ":firstName": `ÄÖÜ`,
          // ":lastName": `äöü`,
        };
      }

Any tips would be greatly appreciated...

已提問 1 個月前檢視次數 60 次
沒有答案

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南