Identificativo articolo: 290978 - Ultima modifica: lunedì 13 agosto 2007 - Revisione: 2.4

WD2002: I caratteri simbolo vengono cambiati in quadratini

Suggerimento di sistemaIl presente articolo fa riferimento a un sistema operativo diverso da quello in uso. Il contenuto dell'articolo che potrebbe non essere relativo al sistema in uso è disabilitato.
Per la versione di questo articolo relativa a Microsoft Word 2000, vedere 212396  (http://support.microsoft.com/kb/212396/IT/ ) .

Per la versione di questo articolo relativa a Microsoft Word 98 per Macintosh, vedere 184634  (http://support.microsoft.com/kb/184634/IT/ ) .

Per la versione di questo articolo relativa a Microsoft Word 97, vedere 160022  (http://support.microsoft.com/kb/160022/IT/ ) .

In questa pagina

Espandi tutto | Chiudi tutto

Sintomi

In Microsoft Word, quando si formatta del testo con un tipo di carattere simbolo, ad esempio Wingdings, e quindi lo si riformatta utilizzando un tipo di carattere non simbolo, ad esempio Times New Roman, il testo viene sostituito da una serie di quadratini.

Cause

Questi quadratini vengono visualizzati dopo che Word ha tradotto il tipo di carattere simbolo nell'equivalente carattere Unicode. Questo comportamento si verifica se vengono eseguite le operazioni descritte di seguito, nell'ordine specificato:
  1. Il testo viene formattato utilizzando un tipo di carattere simbolo, ad esempio Wingdings.
  2. Il file viene salvato.
  3. Il testo viene riformattato con un tipo di carattere non simbolo, ad esempio Times New Roman.

Workaround

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presume che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. Gli esperti Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare procedura, ma in nessun caso a modificare questi esempi per fornire funzionalità aggiuntive o a creare procedure atte a soddisfare specifiche esigenze. Se si dispone di esperienza di programmazione limitata, si consiglia di contattare un Microsoft Certified Partner o la filiale Microsoft locale per informazioni sulla consulenza tecnica. Per ulteriori informazioni in merito ai Microsoft Certified Partner, visitare il seguente sito Web:
https://solutionfinder.microsoft.com/ (https://solutionfinder.microsoft.com/)
Per ulteriori informazioni sulle opzioni di supporto disponibili e su come contattare Microsoft, visitare il seguente sito Web Microsoft:
http://support.microsoft.com (http://support.microsoft.com/)
Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
290140  (http://support.microsoft.com/kb/290140/IT/ ) OFFXP: How to Run Sample Code from Knowledge Base Articles
Con la seguente macro di Microsoft Visual Basic, Applications Edition (VBA) i caratteri simbolo vengono convertiti in caratteri non simbolo.

NOTA: prima di eseguire la macro, selezionare i quadratini.
Sub ConvertSymbol()

   Dim dlg As Object
   Dim NoFC As Integer
   Dim SCP As Integer
   Dim StartRange As Range
   Dim UniCodeNum As Integer

   ' Temporarily disable Screen Updating
   Application.ScreenUpdating = False

   ' Temporarily disable Smart Cut & Paste
   If Options.SmartCutPaste = True Then
      SCP = 1
      Options.SmartCutPaste = False
   End If

   ' Temporarily display field text
   If ActiveWindow.View.ShowFieldCodes = False Then
      NoFC = 1
      ActiveWindow.View.ShowFieldCodes = True
   End If

   ' Set StartRange variable to current selection's range
   Set StartRange = Selection.Range
   Selection.Collapse

   ' Select first, then each next character in user-defined selection
   Selection.MoveRight unit:=wdCharacter, Extend:=wdExtend
   While Selection.End <= StartRange.End And _
      ActiveDocument.Content.End > Selection.End

      ' If the character is a space, then move to next character
      Set dlg = Dialogs(wdDialogInsertSymbol)
      UniCodeNum = dlg.charnum

      If UniCodeNum = 32 Then
         Selection.Collapse
         Selection.MoveRight unit:=wdCharacter, Extend:=wdMove
         Selection.MoveRight unit:=wdCharacter, Extend:=wdExtend
      End If

      ' Loop, converting symbol Unicode characters to ASCII characters
      Set dlg = Dialogs(wdDialogInsertSymbol)
      UniCodeNum = dlg.charnum

      While UniCodeNum < 0 And Selection.End <= StartRange.End _
         And ActiveDocument.Content.End > Selection.End
            Selection.Delete
            Selection.InsertAfter (ChrW(UniCodeNum + 4096))
            Selection.Collapse (wdCollapseEnd)
            Selection.MoveRight unit:=wdCharacter, Extend:=wdExtend
            Set dlg = Dialogs(wdDialogInsertSymbol)
            UniCodeNum = dlg.charnum
      Wend

      Selection.Collapse (wdCollapseEnd)
      Selection.MoveRight unit:=wdCharacter, Extend:=wdExtend
   Wend

   ' Reset Word document settings
   If SCP = 1 Then Options.SmartCutPaste = True
   If NoFC = 1 Then ActiveWindow.View.ShowFieldCodes = False
      Selection.Collapse (wdCollapseStart)
      Selection.MoveLeft unit:=wdCharacter
      Application.ScreenUpdating = True

End Sub
NOTA: una volta eseguita la macro e convertito il testo in caratteri non simbolo, può essere necessario formattare il testo con il tipo di carattere corretto.

Informazioni

Nella tabella che segue sono elencati i tipi di carattere simbolo e non simbolo più comuni:

Tipi di carattere simbolo Tipi di carattere non simbolo
Bookshelf Symbol 3 Arial
Marlett Book Antiqua
Monotype Sorts Bookman Old Style
MS Outlook Century Schoolbook
MT Extra Courier New
Symbol Garamond
Wingdings Times New Roman

Unicode

Unicode è un set di caratteri a 16 bit realizzato per risultare utilizzabile con tutte le principali lingue in uso nel mondo, oltre che con i simboli scientifici e le lingue morte di interesse didattico. Consente di evitare la complessità che deriva dall'uso di set di caratteri multibyte attualmente utilizzati sui sistemi UNIX e Windows per supportare le lingue asiatiche. Unicode è stato creato da un consorzio di società, tra cui Apple, Microsoft, Hewlett-Packard (HP), Digital e IBM, che nel 1993 hanno utilizzato le informazioni contenute nello standard ISO-10646 per produrre uno standard unico. Unicode è alla base del sistema operativo Windows NT.

Nel set di caratteri Unicode a 16 bit ogni carattere occupa lo stesso spazio. I primi 256 valori sono gli stessi del set di caratteri latini ISO, su cui si basa anche il set di caratteri ANSI utilizzato in Windows 3.1 e Windows 95. In Unicode sono tuttavia definiti 34.168 caratteri con codici distinti. Nella maggior parte dei set di caratteri un singolo valore viene spesso assegnato a più caratteri. Ad esempio, in ASCII un carattere "-" viene utilizzato per rappresentare un trattino, in segno meno, una lineetta e un trattino unificatore. In Unicode a ogni significato è assegnato un codice specifico, vale a dire che un trattino è rappresentato da un carattere diverso da un segno meno e così via. Lo standard Unicode contiene solo un'istanza di ciascun carattere, a cui è assegnato un nome e un valore di codice univoci. Supporta inoltre la "combinazione" di caratteri accentati seguendo il carattere di base al quale viene applicata la modifica.

Per ulteriori informazioni su Unicode, visitare il sito Web Unicode all'indirizzo (informazioni in lingua inglese):
http://www.unicode.org/ (http://www.unicode.org/)

Le informazioni in questo articolo si applicano a
  • Microsoft Word 2002 Standard Edition
Chiavi: 
kbprb kbdtacode kbpending KB290978
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.