Re: SQL Server 2019: CHAR(N) using UTF-8 is seen as SQL_NVARCHAR by SQLDescribeCol()
Frediano Ziglio <[email protected]> Thu, 28 Feb 2019 14:22:18 +0000
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Message-ID | <CAHt6W4fEGStudFFPcQiuAxq=cF=Z8Xwk_oe3orP0yW9MHKpYfQ@mail.gmail.com> |
SGksCiAgIHRoZXJlIHNlZW1zIHRvIGJlIDIgbmV3ICJmZWF0dXJlIiAoaXQncyBsaWtlIGNhcGFi aWxpdGllcyBmb3IgVERTCjcuNCksIDkgYW5kIDEwLCB0aGUgcmVsYXRpdmUgYWNrIHZhbHVlcyBh cmUgMHgwMTAxIGFuZCAweDAxLCBjbGllbnQgaXMKc2VuZGluZyAweDAxIGZvciBib3RoLgpDdXJy ZW50bHkgbm90IGRvY3VtZW50ZWQgaW4gVERTIHByb3RvY29sIHNwZWNpZmljYXRpb24KKGh0dHBz Oi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL29wZW5zcGVjcy93aW5kb3dzX3Byb3RvY29scy9t cy10ZHMvYjQ2YTU4MWEtMzlkZS00NzQ1LWIwNzYtZWM0ZGJiN2QxM2VjKS4KVGhlIHByb3RvY29s IHZlcnNpb24gaXMgc3RpbGwgNy40LgpJIHN1cHBvc2UgSSBjYW4gdHJ5IHRvIHNlbmQgdGhlc2Ug ZmVhdHVyZSBleHRlbnNpb25zIGFuZCBzZWUgd2hhdApoYXBwZW5zLCBpZiBzZXJ2ZXIgY2hhbmdl cyB0aGUgZW5jb2RpbmcuCgpGcmVkaWFubwoKSWwgZ2lvcm5vIGdpbyAyOCBmZWIgMjAxOSBhbGxl IG9yZSAxMDo1NiBGcmVkaWFubyBaaWdsaW8KPGZyZWRkeTc3QGdtYWlsLmNvbT4gaGEgc2NyaXR0 bzoKPgo+IEhpLAo+ICAgc28sIGluc3RhbGxlZCBhIHNxbCAyMDE5IGFuZCB0cmllZCBzb21lIHF1 ZXJpZXMuCj4gVXNpbmcgdGhlIGRyaXZlciBwcm92aWRlZCBpbnNpZGUgdGhlIGRvY2tlciBpbWFn ZSB0aGUgImFiYyIgaXMKPiByZXR1cm5lZCBhcyAiYWJjICAgICAgICIsIHNvCj4gdGhlIENIQVIo MTApIGFyZSByZXR1cm5lZCBlbmNvZGVkIGluIFVURi04IGFuZCB0aGUgIjEwIiBpcyBqdXN0IHRo ZQo+IG51bWJlciBvZiBieXRlcy4KPiBOb3csIHdoeSB0aGUgc2VydmVyIGRlY2lkZWQgdG8gcmV0 dXJuIFVURi04IGFuZCBub3QgY29udmVydCB0byBOVkFSQ0hBUiAod2hpY2gKPiBtYWtlIHNlbnNl IHRvIG1lIGZvciBvbGQgY2xpZW50cykgaXQncyB0aGUgaXNzdWUuIE1heWJlIHRoZXkgYnVtcCB0 aGUKPiBwcm90b2NvbCB2ZXJzaW9uLAo+IG1heWJlIHRoZXkgYXJlIHVzaW5nIHNvbWUgb3RoZXIg ZmxhZ3MvdmVyc2lvbiAobGlrZSBjbGllbnQgdmVyc2lvbgo+IHBhc3NlcyB0aHJvdWdoCj4gdGhl IHByZS1sb2dpbikuIFVuZm9ydHVuYXRlbHkgdGhlIGxvZ2luIGlzIGVuY3J5cHRlZCBzbyBJJ2xs IGhhdmUgdG8KPiBkaWcgYSBiaXQgbW9yZSAod2VsbCwKPiBqdXN0IHF1ZXN0aW9uIG9mIHNldHVw IGFuZCB1c2UgdGhlIGJvdW5jZSB1dGlsaXR5LCBub3Qgc3VyZSBpZiBpdAo+IHN1cHBvcnRzIHBy ZS1sb2dpbikuCj4KPiBGcmVkaWFubwo+Cj4gSWwgZ2lvcm5vIGdpbyAyOCBmZWIgMjAxOSBhbGxl IG9yZSAxMDo1MCBTZWJhc3RpZW4gRkxBRVNDSAo+IDxzZkA0anMuY29tPiBoYSBzY3JpdHRvOgo+ ID4KPiA+IEhlbGxvIENyYWlnLAo+ID4KPiA+IEkgZG9uJ3QgdGhpbmsgc286IEFuIE9EQkMgcHJv Z3JhbSBzaG91bGQgYmUgYWJsZSB0byBwcm9wZXJseSBpZGVudGlmeQo+ID4gKGFzIG11Y2ggYXMg cG9zc2libGUpIHRoZSBvcmlnaW5hbCBkYXRhYmFzZSB0eXBlIHVzZWQgZm9yIGEgY29sdW1uLgo+ ID4KPiA+IFdlIG11c3QgYWxzbyBkaXN0aW5ndWlzaCB0aGUgY29uY2VwdCBvZiAidmFyaWFibGUg bGVuZ3RoIiByZWdhcmRpbmcgdGhlCj4gPiBudW1iZXIgb2YgYnl0ZXMgdXNlZCB0byBlbmNvZGUg Y2hhcmFjdGVycywgdmVyc3VzIHRoZSBhY3R1YWwgbGVuZ3RoIG9mCj4gPiB0aGUgc3RyaW5nIGlu IGNoYXJhY3RlciB1bml0cy4KPiA+Cj4gPiBQbHVzIHRoZSBmYWN0IHRoYXQgW05dQ0hBUiBjb2x1 bW5zIGNhbiBiZSBibGFuay1wYWRkZWQsIHdoaWxlIFtOXVZBUkNIQVIKPiA+IGNvbHVtbnMgYXJl IG5vdCBhbmQgc3RvcmUgdGhlIGFjdHVhbCBudW1iZXIgb2YgdHJhaWxpbmcgd2hpdGUgc3BhY2Vz IG9mCj4gPiB0aGUgc3RyaW5nLCB0cnkgZm9yIGV4Ogo+ID4KPiA+IGNyZWF0ZSB0YWJsZSB0YWIx ICggYzEgY2hhcigxMCksIGMyIHZhcmNoYXIoMTApICkKPiA+IGluc2VydCBpbnRvIHRhYjEgdmFs dWVzICggJ2FiYycsICdhYmMgICcgKQo+ID4gc2VsZWN0ICdbJytjMSsnXScsICdbJytjMisnXScg ZnJvbSB0YWIxCj4gPgo+ID4gWW91IHdpbGwgc2VlOgo+ID4KPiA+IFthYmMgICAgICAgXSBbYWJj ICBdCj4gPgo+ID4gKGNoZWNrIFNFVCBBTlNJX1BBRERJTkcgT04vT0ZGKQo+ID4KPiA+IC4uLgo+ ID4KPiA+IFVURi04IGlzIGEgdmFyaWFibGUtd2lkdGggZW5jb2Rpbmc6Cj4gPgo+ID4gYSAgPT4g bmVlZHMgMSBieXRlCj4gPiDDqSAgPT4gbmVlZHMgMiBieXRlcwo+ID4g5pyoID0+IG5lZWRzIDMg Ynl0ZXMKPiA+IC4uLiBldGMgKHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4gMyBieXRlcykKPiA+Cj4g PiBJbiB0aGF0IGNvbnRleHQsIG9uZSBjYW4gc2VlIGEgInZhcmlhYmxlIGxlbmd0aCIgaW4gYnl0 ZSB1bml0cy4uLgo+ID4KPiA+IEJ1dCB3aGVuIGNvdW50aW5nIGluIGNoYXJhY3RlcnMsICdhw6nm nKgnIGlzIDMgY2hhcmFjdGVycywgbm8gbWF0dGVyIHRoZQo+ID4gZW5jb2RpbmcgdXNlZCB0byBz dG9yZSB0aGlzIHN0cmluZy4KPiA+Cj4gPiBZb3UgaGF2ZSBhbHNvIHRoZSBjb25jZXB0IG9mIGJ5 dGUtbGVuZ3RoIHNlbWFudGljcyB2ZXJzdXMgY2hhci1sZW5ndGgKPiA+IHNlbWFudGljczogV2hl biBjcmVhdGluZyBhIENIQVIoMTApIGlzIHRoaXMgMTAgYnl0ZXMgb3IgMTAgY2hhcmFjdGVycz8K PiA+IERlcGVuZGluZyBvbiB0aGUgZGF0YWJhc2UgYnJhbmQsIGl0J3MgYnl0ZXMgKFNRTCBTZXJ2 ZXIpLCBjaGFyYWN0ZXJzCj4gPiAoUG9zdGdyZVNRTCksIG9yIGl0IGNhbiBldmVuIGJlIGEgbWl4 IGFuZCBzcGVjaWZpZWQgZXhwbGljaXRseSAobGlrZQo+ID4gaW4gT3JhY2xlIERCKS4KPiA+Cj4g PiBOb3RlOiBZb3UgaGF2ZSB0aGVuIGFsc28gdGhlIGNvbmNlcHQgb2YgIndpZHRoIiBvciAibnVt YmVyIG9mIGNvbHVtbnMiOgo+ID4gQSBsYXRpbiBjaGFyYWN0ZXIgdGFrZXMgb25lIGNvbHVtbiwg d2hpbGUgYW4gQXNpYW4gbG9nb2dyYW0gdGFrZXMgMi4KPiA+IFNlZSB3Y3dpZHRoKCkgZm9yIG1v cmUgZGV0YWlscy4KPiA+Cj4gPiAuLi4KPiA+Cj4gPiBJbiBTUUwgU2VydmVyLCBOQ0hBUiBhbmQg TlZBUkNIQVIgY2FuIHN0b3JlIFVURi0xNiB3aGVuIHRoZSBTQyBtb2RpZmllcgo+ID4gaXMgdXNl ZCBpbiB0aGUgZGF0YWJhc2UgY29sbGF0aW9uICh0aGV5IHN0b3JlIFVDUy0yIHdoZW4gbm8gU0Mg aXMgdXNlZCkKPiA+Cj4gPiBJbiBVVEYtMTYsIGEgZmlyc3QgcmFuZ2Ugb2YgY2hhcmFjdGVycyBh cmUgZW5jb2RlZCBvbiAyIGJ5dGVzLCBidXQgeW91Cj4gPiBjYW4gaGF2ZSAic3Vycm9nYXRlIHBh aXJzIiBlbmNvZGVkIG9uIDQgYnl0ZXMgKHR3byAxNi1iaXQgY29kZSB1bml0cykuCj4gPgo+ID4g SW4geW91ciBsb2dpYywgdGhlIE5DSEFSL1VURi0xNiB0eXBlIGNvdWxkIGFsc28gYmUgY29uc2lk ZXJlZCBhcyBhCj4gPiAidmFyaWFibGUgbGVuZ3RoIiB0eXBlIGFuZCBTUUxEZWNyaWJlQ29sKCkg Y291bGQgcmV0dXJuIFNRTF9XVkFSQ0hBUgo+ID4gaW5zdGVhZCBvZiBTUUxfV0NIQVIuLi4gSXQg bXVzdCBub3QgYW5kIGRvZXMgbm90Lgo+ID4KPiA+IENoZWVycywKPiA+IFNlYgo+ID4KPiA+Cj4g PiBPbiAyLzI3LzE5IDQ6MzIgUE0sIENyYWlnIEphY2tzb24gd3JvdGU6Cj4gPiA+IEkgZG9uJ3Qg a25vdyBhbnl0aGluZyBhYm91dCBTUUwgU2VydmVyIDIwMTksIGJ1dCBpZiB0aGV5IGFkZGVkIHRo ZSBvcHRpb24KPiA+ID4gdG8gYWxsb3cgVVRGLTggZW5jb2Rpbmcgb2YgY2hhcmFjdGVyIHN0cmlu Z3MsIGl0IHdvdWxkIHNlZW0gbmF0dXJhbCB0aGF0Cj4gPiA+IHNhaWQgc3RyaW5ncyB3b3VsZCBi ZSB2YXJpYWJsZS1sZW5ndGgsIGV2ZW4gaWYgZGVjbGFyZWQgQ0hBUihuKS4gU3RyaW5ncwo+ID4g PiBlbmNvZGVkIGluIFVURi04IGFyZSBpbmhlcmVudGx5IHZhcmlhYmxlIGxlbmd0aC4KPiA+ID4K PiA+ID4gQ3JhaWcgSmFja3Nvbgo+ID4gPgo+ID4gPiBPbiBXZWQsIEZlYiAyNywgMjAxOSBhdCAx MDoyNyBBTSBTZWJhc3RpZW4gRkxBRVNDSCA8c2ZANGpzLmNvbT4gd3JvdGU6Cj4gPiA+Cj4gPiA+ PiBIaSwKPiA+ID4+Cj4gPiA+PiBKdXN0IHRyaWVkIHdpdGggVERTIDcuNCwgaXQgZGlkIG5vdCBo ZWxwLgo+ID4gPj4KPiA+ID4+IEkgaGF2ZSB0ZXN0ZWQgdGhlIE1TIE9EQkMgZHJpdmVyIDE3LjMu MS4xLCBpdCB3b3JrcyBhcyBleHBlY3RlZAo+ID4gPj4gKCBJIGdldCAxL1NRTF9DSEFSIGZyb20g U1FMRGVzY3JpYmVDb2woKSApCj4gPiA+Pgo+ID4gPj4gWW91IG1heSBrbm93IHRoYXQgaXQncyB2 ZXJ5IGVhc3kgdG8gc2V0dXAgYW4gU1FMIFNlcnZlciAyMDE5IHdpdGgKPiA+ID4+IGRvY2tlciwg ZG8geW91Pwo+ID4gPj4KPiA+ID4+IENoZWVycywKPiA+ID4+IFNlYgo+ID4gPj4KPiA+ID4+IE9u IDIvMjcvMTkgMzowOCBQTSwgRnJlZGlhbm8gWmlnbGlvIHdyb3RlOgo+ID4gPj4+IEhpLAo+ID4g Pj4+ICAgICBJIHdvdWxkIHRyeSB0byB1c2UgVERTIDcuNCwgbm90IDcuMy4KPiA+ID4+PiBBbHNv IEkgd291bGQgdHJ5IHRvIHVzZSBNaWNyb3NvZnQgT0RCQyBkcml2ZXIgYW5kIGEgbmV0d29yayBh bmFseXplcgo+ID4gPj4+IChsaWtlIHdpcmVzaGFyaykuCj4gPiA+Pj4KPiA+ID4+PiBSZWdhcmRz LAo+ID4gPj4+ICAgICBGcmVkaWFubwo+ID4gPj4+Cj4gPiA+Pj4gSWwgZ2lvcm5vIG1hciAyNiBm ZWIgMjAxOSBhbGxlIG9yZSAxMToyNiBTZWJhc3RpZW4gRkxBRVNDSAo+ID4gPj4+IDxzZkA0anMu Y29tPiBoYSBzY3JpdHRvOgo+ID4gPj4+Pgo+ID4gPj4+PiBUZXN0aW5nIEZyZWVURFMgMS4xcmMz IHdpdGggU1FMIFNlcnZlciAyMDE5Ogo+ID4gPj4+Pgo+ID4gPj4+PiBJIGdldCBhbiB1bmV4cGVj dGVkIFNRTCB0eXBlIGNvZGUgd2l0aCBhIENIQVIoMTApIGNvbHVtbiwgd2hlbiB0aGUKPiA+ID4+ Pj4gZGF0YWJhc2UgY29sbGF0aW9uIGlzIHVzaW5nIFVURi04Lgo+ID4gPj4+Pgo+ID4gPj4+PiBJ bnN0ZWFkIG9mIFNRTF9DSEFSIChvciBTUUxfV0NIQVIpLCBJIGdldCBTUUxfV1ZBUkNIQVIuCj4g PiA+Pj4+Cj4gPiA+Pj4+IEkgaGF2ZSBjcmVhdGVkIGEgZGF0YWJhc2Ugd2l0aCB0aGlzIGNvbGxh dGlvbjoKPiA+ID4+Pj4KPiA+ID4+Pj4gICAgICBMYXRpbjFfR2VuZXJhbF8xMDBfQ0lfQVNfU0Nf VVRGOAo+ID4gPj4+Pgo+ID4gPj4+PiBUaGVuIGNyZWF0ZWQgYSB0YWJsZSBsaWtlIHRoaXM6Cj4g PiA+Pj4+Cj4gPiA+Pj4+ICAgICAgQ1JFQVRFIFRBQkxFIG15dGFiMSAoIGNvbDEgQ0hBUigxMCkg KQo+ID4gPj4+Pgo+ID4gPj4+PiBhbmQgaW5zZXJ0ZWQgYSByb3c6Cj4gPiA+Pj4+Cj4gPiA+Pj4+ ICAgICAgSU5TRVJUIElOVE8gbXl0YWIxIFZBTFVFUyAoICdhYmMnICkKPiA+ID4+Pj4KPiA+ID4+ Pj4gVGhlbiBpbiB0aGUgT0RCQyBwcm9ncmFtOgo+ID4gPj4+Pgo+ID4gPj4+PiAgICAgIFNRTEV4 ZWNEaXJlY3QoLi4iU0VMRUNUICogRlJPTSBteXRhYjEiLi4pCj4gPiA+Pj4+ICAgICAgU1FMRGVz Y3JpYkNvbCguLi4pCj4gPiA+Pj4+Cj4gPiA+Pj4+IENoZWNrIHRoZSBURFNEVU1QIHRyYWNlIGlu IGF0dGFjaG1lbnQgKGZyZWV0ZHMtMjAxOS0xLmxvZykKPiA+ID4+Pj4KPiA+ID4+Pj4gdG9rZW4u YzoxNTQxOnRkczdfZ2V0X2RhdGFfaW5mbzoKPiA+ID4+Pj4gICAgICAgICAgICBjb2xuYW1lID0g Y29sMQo+ID4gPj4+PiAgICAgICAgICAgIHR5cGUgPSAzOSAodmFyY2hhcikKPiA+ID4+Pj4gICAg ICAgICAgICBzZXJ2ZXIncyB0eXBlID0gMjMxICh4IFVDUy0yIHZhcmNoYXIpICAgICAgICAgICA8 LS0gMjMxID8KPiA+ID4+Pj4gICAgICAgICAgICBjb2x1bW5fdmFyaW50X3NpemUgPSAyCj4gPiA+ Pj4+ICAgICAgICAgICAgY29sdW1uX3NpemUgPSAyMCAoMjAgb24gc2VydmVyKQo+ID4gPj4+Pgo+ ID4gPj4+Pgo+ID4gPj4+PiBUaGUgc2FtZSBwcm9ncmFtLCBjb25uZWN0aW5nIHRvIFNRTCBTZXJ2 ZXIgMjAxNyAod2VyZSBEQiBjb2xsYXRpb24gaXMKPiA+ID4+IExhdGluMQo+ID4gPj4+PiB3aXRo b3V0IFVURi04KToKPiA+ID4+Pj4KPiA+ID4+Pj4KPiA+ID4+Pj4gdG9rZW4uYzoxNTQxOnRkczdf Z2V0X2RhdGFfaW5mbzoKPiA+ID4+Pj4gICAgICAgICAgICBjb2xuYW1lID0gY29sMQo+ID4gPj4+ PiAgICAgICAgICAgIHR5cGUgPSA0NyAoY2hhcikKPiA+ID4+Pj4gICAgICAgICAgICBzZXJ2ZXIn cyB0eXBlID0gMTc1ICh4Y2hhcikgICAgICAgICAgPC0tIDE3NQo+ID4gPj4+PiAgICAgICAgICAg IGNvbHVtbl92YXJpbnRfc2l6ZSA9IDIKPiA+ID4+Pj4gICAgICAgICAgICBjb2x1bW5fc2l6ZSA9 IDEwICgxMCBvbiBzZXJ2ZXIpCj4gPiA+Pj4+Cj4gPiA+Pj4+IFdpdGggU1FMIFNlcnZlciAyMDE5 LCB3aGVuIHVzaW5nIGFub3RoZXIgY29sbGF0aW9uIChub24tVVRGLTgpCj4gPiA+Pj4+Cj4gPiA+ Pj4+ICAgICAgIENSRUFURSBUQUJMRSBteXRhYjIgKCBjb2wxIENIQVIoMTApIENPTExBVEUgTGF0 aW4xX0dlbmVyYWxfQ0lfQVMgKQo+ID4gPj4+Pgo+ID4gPj4+PiBJIGdldCB0aGUgZXhwZWN0ZWQg dGRzIHR5cGUgY29kZS4uLgo+ID4gPj4+Pgo+ID4gPj4+PiBTZWIKPiA+ID4+Pj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4+Pj4gRnJlZVREUyBt YWlsaW5nIGxpc3QKPiA+ID4+Pj4gRnJlZVREU0BsaXN0cy5pYmlibGlvLm9yZwo+ID4gPj4+PiBo dHRwczovL2xpc3RzLmliaWJsaW8ub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZXRkcwo+ID4gPj4+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiA+Pj4g RnJlZVREUyBtYWlsaW5nIGxpc3QKPiA+ID4+PiBGcmVlVERTQGxpc3RzLmliaWJsaW8ub3JnCj4g PiA+Pj4gaHR0cHM6Ly9saXN0cy5pYmlibGlvLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWV0ZHMK PiA+ID4+Pgo+ID4gPj4KPiA+ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4gPiA+PiBGcmVlVERTIG1haWxpbmcgbGlzdAo+ID4gPj4gRnJlZVREU0Bs aXN0cy5pYmlibGlvLm9yZwo+ID4gPj4gaHR0cHM6Ly9saXN0cy5pYmlibGlvLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ZyZWV0ZHMKPiA+ID4+Cj4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCj4gPiA+IEZyZWVURFMgbWFpbGluZyBsaXN0Cj4gPiA+IEZy ZWVURFNAbGlzdHMuaWJpYmxpby5vcmcKPiA+ID4gaHR0cHM6Ly9saXN0cy5pYmlibGlvLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ZyZWV0ZHMKPiA+ID4KPiA+Cj4gPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gRnJlZVREUyBtYWlsaW5nIGxpc3QKPiA+ IEZyZWVURFNAbGlzdHMuaWJpYmxpby5vcmcKPiA+IGh0dHBzOi8vbGlzdHMuaWJpYmxpby5vcmcv bWFpbG1hbi9saXN0aW5mby9mcmVldGRzCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkZyZWVURFMgbWFpbGluZyBsaXN0CkZyZWVURFNAbGlzdHMuaWJpYmxp by5vcmcKaHR0cHM6Ly9saXN0cy5pYmlibGlvLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWV0ZHMK