Condividi tramite


Supporto del set di caratteri codificato cinese (GB18030-2022)

Lo standard cinese GB18030-2022 è l'ultimo aggiornamento ai requisiti del set di caratteri nazionali. Garantisce la compatibilità con Unicode 11.0 e impone il supporto per caratteri aggiuntivi, inclusi script di minoranza ed emoji. Per le organizzazioni che operano in o in Cina, la conformità non è facoltativa; è un requisito normativo.

Power BI può essere configurato per rispettare la codifica GB18030-2022 usando l'impostazione UnicodeCharacterBehavior . Questa impostazione è impostata su CodeUnits per impostazione predefinita. Per assicurarsi che il modello sia compatibile con GB18030-2022, è necessario eseguire un comando XMLA specifico per impostare UnicodeCharacterBehavior su CodePoints, seguito da un aggiornamento del modello.

Comando XMLA

<Alter AllowCreate="true" ObjectExpansion="ObjectProperties" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
	<Object>
		<DatabaseID>[your database id]</DatabaseID>
	</Object>
	<ObjectDefinition>
		<Database xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2"
		xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2"
		xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100"
		xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200"
		xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200"
		xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300"
		xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300"
		xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400"
		xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400"
		xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500"
		xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500">
			<ID>[your model id]</ID>
			<Name>[your model name]</Name>
			<ddl200:CompatibilityLevel>[your model compatibility level]</ddl200:CompatibilityLevel>
			<ddl200_200:StorageEngineUsed>TabularMetadata</ddl200_200:StorageEngineUsed>
			<Language>1033</Language>
			<UnicodeCharacterBehavior xmlns="http://schemas.microsoft.com/analysisservices/2025/engine/924/924">CodePoints</UnicodeCharacterBehavior>
		</Database>
	</ObjectDefinition>
</Alter>

Dopo aver eseguito questo comando XMLA, eseguire un aggiornamento completo del modello.

Example

UnicodeCharacterBehavior influenza qualsiasi DAX funzione che determina la lunghezza di una stringa di testo, che include FIND, LEFT, LEN, MID, REPLACE, RIGHT. Queste funzioni mostreranno comportamenti diversi quando si utilizzano stringhe di testo che contengono caratteri Unicode. Vediamo la differenza in azione. Ecco una misura che usa LEN per calcolare la lunghezza di una stringa di testo:

StringLength = LEN ( SELECTEDVALUE ( 'Table'[Column1] ) )

In questo esempio contiene Column1 tre valori:

  • A
  • B🍕
  • 🍟🍔

Ecco un confronto prima e dopo del risultato di StringLength su una colonna che contiene caratteri Unicode:

UnicodeCharacterBehavior = CodeUnits (impostazione predefinita) UnicodeCharacterBehavior = CodePoints
Screenshot di una tabella che mostra la colonna 1 e StringLength. I valori StringLength sono 1, 3 e 4. Screenshot di una tabella che mostra la colonna 1 e StringLength. I valori StringLength sono 1, 2 e 2.

Si noti che a sinistra ogni carattere Unicode ha lunghezza 2, dove a destra, ogni carattere Unicode ha lunghezza 1.

Annotazioni

Le modifiche a UnicodeCharacterBehavior prendono effetto solo dopo l'aggiornamento del modello.