Chr (169) не дает символа авторского права - PullRequest
0 голосов
/ 21 марта 2020

У меня есть FE и BE, разделенные на mdb, которые на моем Windows 10 / Office 365 Acess дает © для Chr (169).

На компьютере моего клиента (последнее обновление до Windows 10) в Office 2013 Access дает � (На самом деле, в окне «Немедленно» он выглядит как 1 с умлаутом, затем перевернутым вопросительным знаком, затем верхним индексом 1/2) для Chr (169).

В Непосредственное окно на машине клиента, поскольку c ("©") дает 176 вместо 169.

Кажется, что карты символов различаются между двумя машинами, хотя когда я go к карте символов приложение, для Arial и Times New Roman, оно отображает © как 169.

Как мне заставить машину клиента соответствовать моей?

Первое, что мне порекомендовали сделать, это Ремонт офиса , После этого в окне Immediate я получаю разные значения каждый раз, когда делаю

? Как c ("©")

48, затем 16, затем 72, 112, затем 144 и т. Д. , случайные числа.

Это то же самое, копирую ли я символ авторского права из MS Word или приложения Character Map.

На самом деле, когда я вставляю символ авторского права в окно Immedate, оно приходит через как А (с обведенным вокруг) © Означает ли это что-нибудь полезное?

Кроме того, рядом со знаком £ стоит пустой квадрат.

У кого-нибудь есть идеи? Офисная проблема? Windows вопрос?

Спасибо!

1 Ответ

1 голос
/ 21 марта 2020

Всегда используйте AscW при использовании не-ASCII символов.

Знак авторского права не является частью стандартного ASCII, поэтому может или не может быть представлен в кодовой странице Windows, используемой в зависимости от настроек локали .

AscW использует кодировку Unicode вместо Windows кодовой страницы, что означает, что она будет надежно давать тот же результат.

Кроме того, никогда не храните символы не ASCII в VBA. Если вам нужен определенный c символ, вы можете найти код и использовать ChrW для генерации строки. Для нескольких символов я рекомендую вам посмотреть этот ответ или сохранить их вне VBA.

Затем, что касается непосредственного окна, которое также не поддерживает символы Юникода, так что вы можете не верьте тому, что там отображается. Также не MsgBox. Это делает отладку болью. Посмотрите на этот ответ за наличие сообщения с поддержкой юникода.

...